【发布时间】:2020-01-28 17:47:36
【问题描述】:
我正在通过 lucene 对文档进行索引,创建了索引,但是当实现搜索时,得到 0 个命中。
我不知道索引或搜索的错误在哪里。
索引
Directory directory = FSDirectory.open(Paths.get("C:\\indexes\\teste"));
Analyzer analyzer = new StandardAnalyzer();
IndexWriterConfig config = new IndexWriterConfig(analyzer);
IndexWriter indexWriter = new IndexWriter(directory, config);
Document document = new Document();
document.add(new StringField("id", "1", Store.YES));
document.add(new StringField("name", "Pedro Henriques", Store.YES));
document.add(new StringField("displayName", "Pedro Rosa", Store.YES));
document.add(new StringField("segment", "segment xpto", Store.YES));
indexWriter.addDocument(document);
indexWriter.commit();
indexWriter.close();
directory.close();
搜索
Directory directory = FSDirectory.open(Paths.get("C:\\indexes\\teste"));
IndexReader reader = DirectoryReader.open(directory);
IndexSearcher searcher = new IndexSearcher(reader);
Analyzer analyzer = new StandardAnalyzer();
QueryParser parser = new QueryParser("", analyzer);
Query query = parser.parse("name:Henriques");
log.info("Consulta analisada-> " + query);
TopDocs docs = searcher.search(query, 100);
for (ScoreDoc sd : docs.scoreDocs) {
Document doc = searcher.doc(sd.doc);
log.info(doc.toString());
}
docs.scoreDocs 为空。
我的 Lucene 依赖项是
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>8.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
<version>8.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queries</artifactId>
<version>8.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>8.2.0</version>
</dependency>
我的 Java 版本是 11。
谢谢!
【问题讨论】:
标签: java search indexing lucene full-text-indexing