搜索思路:构建IndexSearcher对象searcher -> 构建Query对象q,new TermQuery(Term t) -> 执行查询,searcher.search(q) -> 返回Hits类型结果。
基本概念:
IndexSearcher:索引器;
Query:抽象类,表示一个查询请求;
Hits:表示一次查询结果,其内部具有缓存机制;
TermQuery:词条搜索,继承Query;
BooleanQuery:布尔搜索,继承Query,可以包含多个子搜索(如词条搜索),使用add(Query q, BooleanClause.Occur b)方法把子搜索加入布尔搜索,子搜索间使用“与”,“或”等布尔逻辑进行组合;
RangeQuery:范围搜索,范围可以是日期时间数字大小等,需要创建上界和下界两个Term实例;
PrefixQuery:前缀搜索;
PraseQuery:短语搜索,使用add(new Term(String Feild, String keyword))方法把拆分后的短语加入短语搜索,可以使用setSlop(int s)设置坡度,默认是0;
MultiPhraseQuery:多短语搜索;
FuzzyQuery:模糊搜索;
WildcardQuery:通配符搜索,*代表0个或多个字符&#x