FlexLuceneで「もしかして検索」を実装する方法

 今回は、FlexLuceneのFuzzySuggesterの使い方をご紹介します。

  • 以下のコードで、"Content"にある転置インデックスからFuzzySuggesterの結果を確認することがきます。
  1. private void FuzzySuggestTest() {
  2.  
  3. java.nio.file.Path idxPath = FileSystems.getDefault().getPath(storePath);
  4. var fsDir = FSDirectory.Open(idxPath);
  5. var idxReader = DirectoryReader.Open(fsDir);
  6.  
  7. Dictionary dictionary = new LuceneDictionary(idxReader, "Content");
  8. var directory = new RAMDirectory();
  9. var suggester = new FuzzySuggester(directory, "", new JapaneseAnalyzer());
  10. suggester.Build(dictionary);
  11.  
  12. //最大3候補を表示
  13. var resultList = suggester.Lookup("単体", false, 3);
  14. int cnt = 0;
  15. for (int i = 0; i < resultList.size(); i++) {
  16. var lr = (FlexLucene.Search.Suggest.LookupLookupResult)resultList.get(i);
  17. string keyword = lr.Key.toString();
  18. Debug.WriteLine(keyword);
  19. }
  20. }
  • FuzzySuggesterの結果

後は、抽出した「もしかして」キーワードで再検索できるように実装すれば、「もしかして検索」機能を実現できます。

0 件のコメント:

コメントを投稿

厳選 Visual Studioの便利なショートカット

  エラー箇所にジャンプ 「Ctrl + Shift + F12」 ブレークポイント 設定/解除 「F9」 有効化/無効化 「Ctrl + F9」 ViEmu特有 「:ls」:バッファナンバーのリストを表示。 「:b2」:バッファ2のファイルを開く。 「:n」:次のバッファのファ...