H2全文搜索订单结果

Posted

技术标签:

【中文标题】H2全文搜索订单结果【英文标题】:H2 fulltext search order results 【发布时间】:2017-01-22 08:42:13 【问题描述】:

我有一个名为“AM_API”的表。其中有一个名为“NAME”的列。 我正在使用带有 h2 数据库的 lucene 全文搜索。 我在 AM_API 表中添加了大约 1000 个条目,名称为“Test1”、“Test2”、“Test3”、......“Test1000”

我已经创建了 lucene 全文搜索索引并且搜索工作正常。但是搜索结果顺序不正确。

以下是我的查询。

SELECT APIS.* FROM FTL_SEARCH_DATA ('Tes',0,10) FT, AM_API APIS WHERE FT.TABLE='AM_API' AND APIS.UUID=FT.KEYS[0] ORDER BY APIS.NAME

此查询按以下顺序返回结果。

Test1、Test2、Test3、Test4、Test5、Test6、Test7、Test8、Test9、Test10

但正确的排序顺序应该是

Test1、Test10、Test100、Test1000、Test101、Test102、Test103、Test104、Test105、Test106

如何获取按名称列排序的正确顺序的全文搜索数据

【问题讨论】:

【参考方案1】:

将我的查询更改为关注后,它现在按预期对结果进行排序。SELECT APIS.* LEFT JOIN FTL_SEARCH_DATA (?, 0, 0) FT ON API.UUID=FT.KEYS[0] WHERE FT.TABLE='AM_API' GROUP BY UUID ORDER BY NAME

【讨论】:

以上是关于H2全文搜索订单结果的主要内容,如果未能解决你的问题,请参考以下文章

使用 JPA (Eclipselink) 在 H2 数据库中执行全文搜索

全文搜索引擎有那些、

全文搜索基本原理(倒排索引搜索结果排序)

sql 全文搜索 CONTAINS() *有时* 没有结果

SQL Server 全文搜索返回意外结果

全文搜索中的 CONTAINS 不返回所有结果