首页 > 代码库 > 【Lucene4.8教程之六】QueryParser与Query子类:如何生成Query对象
【Lucene4.8教程之六】QueryParser与Query子类:如何生成Query对象
对于一个搜索而言,其核心语句为:
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的搜索域?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。