码迷,mamicode.com
首页 > 其他好文 > 详细

【Lucene4.8教程之六】QueryParser与Query子类:如何生成Query对象

时间:2014-06-24 17:38:36      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:Lucene   class   blog   code   java   使用   

对于一个搜索而言,其核心语句为:

searcher.search(query, 10);
此时,其最重要的参数为一个Qeury对象。构造一个Query对象有2种方法:【均以在contents域搜索java关键词为例】

(1)使用Query的子类,如BooleanQuery, ConstantScoreQuery, DisjunctionMaxQuery, FilteredQuery, MatchAllDocsQuery, MultiPhraseQuery, MultiTermQuery, PhraseQuery, SpanQuery, TermQuery,直接实例化一个对外:

searcher.search( new TermQuery(new Term("contents","java")), 10);

以下语句结构更为清晰

Term term= new Term("contents","java");
TermQuery tq = new TermQuery(term);
searcher.search(tq , 10);

此外,即为在contents域中搜索包括java的文档。

(2)使用QueryParser的parse()方法,对所传入的搜索关键词汇进行解释,并返回query对象。

QueryParser parser = new QueryParser(Version.LUCENE_48, "contents",new SimpleAnalyzer(Version.LUCENE_48));
Query query = null;
try {
	query = parser.parse("java");
} catch (ParseException e) {
	e.printStackTrace();
}
TopDocs docs = searcher.search(query, 10);
以上语句创建一个QueryParser,其默认搜索域为contents,然后将搜索词汇转化为Query对象。

如果指定QueryParser的默认搜索域为全部?如何指定一个Query的搜索域?

【Lucene4.8教程之六】QueryParser与Query子类:如何生成Query对象,布布扣,bubuko.com

【Lucene4.8教程之六】QueryParser与Query子类:如何生成Query对象

标签:Lucene   class   blog   code   java   使用   

原文地址:http://blog.csdn.net/jediael_lu/article/details/33288793

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!