2017-01-22 20 views
0

私はAM_APIというテーブルを持っています。そこには「NAME」という列があります。 私はh2データベースでlucene全文検索を使用しています。 "Test1"、 "Test2"、 "Test3"、............. "Test1000"という名前のAM_APIテーブルに約1000のエントリを追加しましたH2全文検索の検索結果

私はlucene fullを作成しました。テキスト検索のインデックスと検索が正常に動作しています。しかし、検索結果の順序が間違っています。

以下は私の質問です。

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

次に私のクエリを変更した後、名前欄

答えて

0

によって並べ替えられ、正しい順序で全文検索データを取得する方法、それが今の結果をソートします。
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