-
6、多短语搜索(先指定一个前缀关键字,然后讲其他的关键字加在此关键字之后,组成词语进行搜索)
主要对象是:MultiPhraseQuery
调用方式如下:
Code
Term term=new Term(字段名,前置关键字);
Term term1=new Term(字段名,搜索关键字);
Term term2=new Term(字段名,搜索关键字);
MultiPhraseQuery multiphrasequery=new MultiPhraseQuery();
multiphrasequery.add(term);
multiphrasequery.add(new Term[]{term1,term2});
Hits hits=searcher.search(multiphrasequery);
7、模糊搜索(顾名思义)
主要对象是:FuzzyQuery
调用方式如下:
Code
Term term=new Term(字段名,搜索关键字);
FuzzyQuery fuzzyquery=new FuzzyQuery (term,参数);
Hits hits=searcher.search(fuzzyquery);
此中的参数是表示模糊度,是小于1的浮点小数,比如0.5f
8、通配符搜索(顾名思义)
主要对象是:WildcardQuery
调用方式如下:
Code
Term term=new Term(字段名,搜索关键字+通配符);
WildcardQuery wildcardquery=new WildcardQuery (term);
Hits hits=searcher.search(wildcardquery);
其中的通配符分两种,即*和?
* 表示任意多的自负
?表示任意一个字符
9、正则表达式搜索(顾名思义)
主要对象是:RegexQuery
调用方式如下:
Code
Term term=new Term(字段名,正则表达式);
RegexQuery regexquery=new RegexQuery(term);
Hits hits=searcher.search(regexquery);
Lucene 搜索种类很多。这里就介绍几个最常用的。其中TermQuery\BooleanQuery\RegexQuery功能最强大,最为常用。