pdfbox api class によって生成されたインデックスがありますLucenePDFDocument
。索引にはテキストの内容しか含まれていないため、この索引を効率的に検索したいと考えています。
検索文字列を使用して「コンテンツ」フィールドを検索します。結果の順序は、関連性の高いものから関連性の低いものの順に並べる必要があります。以下のコードは、検索されたテキストの単語を含むファイルを表示しました。たとえば、 'What is your nationality'ですが、結果にはこの完全な文を含むファイルが含まれていませんでした。
上記のシナリオで検索するには、どのクエリパーサーとクエリを使用する必要がありますか。
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"));
}