我正在尝试从Lucene索引中搜索。我使用StandardAnalyzer创建了一个索引 我将数据编入索引,如下所示
当然 BCA MCA BCA BCA MCA
当我在course =“BCA”上搜索时,它返回我3次BCA但我希望它应该给出不同的值,即只有一次
我正在使用以下代码
try {
File indexDir = new File("D:\\indexdirectory\\");
Directory directory = FSDirectory.open(indexDir);
IndexSearcher searcher = new IndexSearcher(directory, true);
QueryParser parser1;
parser1= new QueryParser(Version.LUCENE_36, "course", new StandardAnalyzer(Version.LUCENE_36));
Query query = parser1.parse("BCA");
int maxhits = 5000;
TopDocs topDocs = searcher.search(query, maxhits);
ScoreDoc[] hits = topDocs.scoreDocs;
int len = hits.length;
int docId;
Document d;
for(int j=0;j<len;j++) {
docId = hits[j].doc;
d = searcher.doc(docId);
String c = d.get("course");
System.out.println("Course = "+c);
}
}catch(Exception e) {
System.out.println("Exception occured"+e);
}
它不仅按预期返回BCA 3次。