私は、pdfbox APIクラスLucenePDFDocument
によって生成されたインデックスを持っています。索引にはテキストの内容のみが含まれているため、この索引を効果的に検索したいと考えています。Lucene - 効果的なテキスト検索
私は検索文字列で 'contents'フィールドを検索します。結果の順序は関連性の低いものから関連性の低いものにする必要があります。以下のコードは、検索されたテキストの単語を含むファイルを表示しました。「あなたの国は何ですか?」ですが、この完全な文を含むファイルは含まれていませんでした。
上記のシナリオで検索するために使用するクエリパーサーとクエリはどのようなものですか。
Query query = new MultiFieldQueryParser(Version.LUCENE_30, fields,
new StandardAnalyzer(Version.LUCENE_30))
.parse(searchString);
TopScoreDocCollector collector = TopScoreDocCollector.create(5,
false);
searcher.search(query, collector);
ScoreDoc[] hits = collector.topDocs().scoreDocs;
System.out.println("count " + hits.length);
for (ScoreDoc scoreDoc : hits) {
int docId = scoreDoc.doc;
Document d = searcher.doc(docId);
System.out.println(d.getField("path"));
}
"以下のコードは期待通りに機能しませんでした。" - あなたが期待するものと実際に得られるものを記述できますか? – ffriend
コードには、検索されたテキストの単語を含むファイルが表示されました。たとえば、「あなたの国籍は?」です。結果にはこのフルテキストを含むファイルが含まれていませんでした。例:somdir/a.pdfにはこの完全な文字列が含まれていましたが、結果には表示されませんでした。 luceneでフルテキスト検索を効果的に実装する方法。 –