0

我正在尝试从 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 次。

4

0 回答 0