如何从Lucene Field获得独特的价值

时间:2013-06-28 05:56:04

标签: java search lucene

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

0 个答案:

没有答案