У меня есть индекс, сгенерированный классом pdfbox api LucenePDFDocument
.Поскольку индекс содержит только текстовое содержимое, я хочу эффективно искать этот индекс.
Я буду искать в поле «содержание» строку поиска, порядок результатов должен быть от наиболее релевантного к наименее релевантному.Приведенный ниже код действительно отображал файлы со словами искомого текста, например «Какой вы национальности» , но в результатах не было файла, содержащего это полное предложение.
Какой анализатор запросов и запрос я должен использовать для поиска в вышеупомянутом сценарии.
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"));
}