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

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

  • 以下のコードで、"Content"にある転置インデックスからFuzzySuggesterの結果を確認することがきます。
    private void FuzzySuggestTest() {

        java.nio.file.Path idxPath = FileSystems.getDefault().getPath(storePath);
        var fsDir = FSDirectory.Open(idxPath);
        var idxReader = DirectoryReader.Open(fsDir);

        Dictionary dictionary = new LuceneDictionary(idxReader, "Content");
        var directory = new RAMDirectory();
        var suggester = new FuzzySuggester(directory, "", new JapaneseAnalyzer());
        suggester.Build(dictionary);

        //最大3候補を表示
        var resultList = suggester.Lookup("単体", false, 3);
        int cnt = 0;
        for (int i = 0; i < resultList.size(); i++) {
            var lr = (FlexLucene.Search.Suggest.LookupLookupResult)resultList.get(i);
            string keyword = lr.Key.toString();
            Debug.WriteLine(keyword);
        }
    }
  • FuzzySuggesterの結果

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

0 件のコメント:

コメントを投稿

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

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