我想首先为我糟糕的英语道歉我是新来的,我不太了解查询文档,我索引了一些文档并制作了这个查询代码,但它无法正常工作
Term t = new Term("description", "history");
Query q = new FuzzyQuery(t, 2);
int hitsPerPage = 100;
Path indexPath = Paths.get("C:\\Users\\Win 7\\Desktop\\projet_ri\\index");
Directory directory = FSDirectory.open(indexPath);
DirectoryReader reader = DirectoryReader.open(directory);
IndexSearcher iSearcher = new IndexSearcher(reader);
TopDocs topdocs = iSearcher.search(q, hitsPerPage);
ScoreDoc[] resultsList = topdocs.scoreDocs;
System.out.println("Tab size: "+resultsList.length); // This prints Tab size: 0
for(int i = 0; i<resultsList.length; i++){
Document book = iSearcher.doc(resultsList[i].doc);
String description = book.getField("description").stringValue();
System.out.println(description);
}
程序甚至没有进入循环,我试图检查resultsList选项卡,它打印出大小为零 有人可以帮我纠正我的代码或给我一个查询示例代码吗?
答案 0 :(得分:0)
您实际上错过了使用QueryParser进行查询。 此QueryParser需要与用于索引的分析器相同的分析器。这非常重要,否则结果集可能与您的预期不同。你的序列应该是这样的:
参见基本的lucene教程:https://www.tutorialspoint.com/lucene/lucene_search_operation.htm