基本的な検索が機能しており、 を使用して強調表示してFastVectorHighlighter
います。ハイライターに「最適なフラグメント」を要求すると、ここgetBestFragment(s)
に記載されているいくつかのオーバーロードから選択できます。私は今、次のような最も単純なものを使用しています。
highlightedText = highlighter.getBestFragment(fieldQuery, searcher.getIndexReader(),
scoreDoc.doc, "description", 100)
そのため、「説明」フィールドから一致を強調しています。ただし、私のクエリは別のフィールド「メモ」を検索します。それをハイライトに含めるにはどうすればよいですか?Set<String> matchedFields
aと oneを取るオーバーロードがありますがString storedField
、ドキュメントがわかりません。メソッドのドキュメントには次のように書かれています。
すべてのmatchedFieldsがstoredFieldと同じソースを共有するか、少なくともそのプレフィックスであることが推奨されます。
どういう意味ですか?matchedFields
「メモ」と「説明」の文字列にインデックスを付けるにはどうすればよいstoredField
ですか?