`
baobeituping
  • 浏览: 1044520 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Lucene 搜索方法(多短语搜索)

阅读更多

短语搜索解决了短语搜索的问题,在很多情况下,用户输入某个关键字时,该关键字可以喝多种单字组成短语,例如,用户输入一个“声”字。它可以和“声音”,“声明”等字组成短语。LUCENE提供了MultiPhraseQuery来进行多短语搜索。

代码:

public static void main(String[] args) {
  try {
   IndexSearcher search = new IndexSearcher("d://demo");
   MultiPhraseQuery query = new MultiPhraseQuery();
   Term term1 = new Term("bookname","钢");
   Term term3 = new Term("bookname","和");
   query.add(new Term[]{term1,term3});
   
   Term term2 = new Term("bookname","铁");
   
   Term term4 = new Term("bookname","要");
   
   query.add(new Term[]{term2,term4});
   Hits hits = search.search(query);
   for(int i=0;i<hits.length();i++)
   {
    System.out.println(hits.doc(i));
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

搜索结果:

Document<stored/uncompressed,indexed,tokenized<bookname:钢铁战士>>
Document<stored/uncompressed,indexed,tokenized<bookname:钢铁是怎样炼成的>>
Document<stored/uncompressed,indexed,tokenized<bookname:钢和铁是两种金属元素>>
Document<stored/uncompressed,indexed,tokenized<bookname:钢要比铁有更多的碳元素>>

 

注释:该程序定义的是以“钢”和“和”开头的字,并且可以组合“铁”和“要”的短语。

在该类中同样可以使用坡度的方法。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics