Lucene公司学习培训.pptVIP

  • 8
  • 0
  • 约1.33万字
  • 约 45页
  • 2018-02-24 发布于河南
  • 举报
Lucene公司学习培训

TermQuery TermQuery是抽象类Query的一个子类,它同时也是Lucene支持的最为基本的一个查询类。 生成一个TermQuery对象由如下语句完成: 它的构造函数只接受一个参数,那就是一个Term对象。 TermQuery termQuery = new TermQuery(new Term(“fieldName”,”queryWord”)); Hits Hits是用来保存搜索的结果的。 基于性能考虑,Hits的实例并不从索引中加载所有匹配查询的所有文档,而是每次一小部分。 public final int length() public final Document doc(int?n)… public final float score(int?n)… public final int id(int?n)… public Iterator iterator() 关键词搜索的大致过程 最简单的接受单个Query对象做为参数并返回一个Hits对象。这个方法的典型应用类似这样: IndexSearcher sercher = new IndexSearcher( INDEX_DIR); Query q = new TermQuery(new Term(“contents”, “lucene”)); Hits hits = sercher.search(q); for (int i = 0; i hits.length(); i++) { Document doc = hits.doc(i); String summary = doc.get(“title); } BooleanQuery布尔搜索 BooleanQuery是实际开发过程中经常使用的一种Query。 它其实是一个组合的Query,在使用时可以把各种Query对象添加进去并标明它们之间的逻辑关系。 BooleanQuery是可以嵌套的(BooleanQuery是一个布尔子句的容器) 一个BooleanQuery可以成为另一个BooleanQuery的条件子句。 布尔型Query的子句数目不能超过1024 BooleanClause布尔搜索 public void add(Query?query, BooleanClause.Occur?occur) BooleanClause用于表示布尔查询子句关系的类,包括: BooleanClause.Occur.MUST,BooleanClause.Occur.MUST_NOT,BooleanClause.Occur.SHOULD。 有以下6种组合: 1.MUST和MUST:取得连个查询子句的交集。 2.MUST和MUST_NOT:表示查询结果中不能包含MUST_NOT所对应得查询子句的检索结果。 3.MUST_NOT和MUST_NOT:无意义,检索无结果。 4.SHOULD与MUST、SHOULD与MUST_NOT: SHOULD与MUST连用时,无意义,结果为MUST子句的检索结果。 SHOULD与MUST_NOT连用时, SHOULD功能同MUST,相当于MUST和 MUST NOT的检索结果。 5.SHOULD与SHOULD:表示“或”关系,最终检索结果为所有检索子句的并集。 RangeQuery范围搜索 public RangeQuery(Term?lowerTerm, Term?upperTerm, boolean?inclusive) 布尔型的参数表示是否将2个临界值也加入到搜索中 查找所有书号在000001到000005之间的图书,并且不包括000001和000005 IndexSearcher searcher = new IndexSearcher(PATH); Term begin = new Term(booknumber,000001); Term end = new Term(booknumber,000005); RangeQuery query = new RangeQuery(begin,end,false); Hits hits = searcher.search(query); PrefixQuery 前缀搜索 《钢铁是怎样炼成的》《英雄儿女》《篱笆女人和狗》《女人是水做的》《我的兄弟和女儿》《白毛女》《钢的世界》《钢铁战士》 《钢铁是怎样炼成的》《钢的世界》《钢铁战士》 IndexSearcher searcher = new IndexSearcher(PATH); Term prefix = new Term(bookname,钢); PrefixQuery query = new PrefixQuery(prefix); Hit

文档评论(0)

1亿VIP精品文档

相关文档