lucene模糊检索功能

1、通配符方式
WildcardQuery query=new WildcardQuery(new Term(“content”,”?qq*”));
* 表示0到多个字符
? 表示一个单一的字符

2、模糊搜索—FuzzyQuery
使用的算法为levenshtein算法,在比较两个字符串时,将动作分为3种:

l) 加一个字母

2) 删一个字母

3) 改变一个字母

FuzzyQuery query=new FuzzyQuery(new Term(“content”,”work”));

public FuzzyQuery(Term term)

public FuzzyQuery(Term term,float minimumSimilarity)throws IllegalArgumentException

public FuzzyQuery(Term term,float minimumSimilarity,int prefixLength)throws IllegalArgumentException

其中minimumSimilarity为最小相似度,越小则文档的数量越多。默认为0.5.其值必须<1.0

FuzzyQuery query=new FuzzyQuery(new Term(“content”,”work”),0.1f);

其中prefixLength表示要有多少个前缀字母必须完全匹配

FuzzyQuery query=new FuzzyQuery(new Term(“content”,”work”),0.1f,1);

你可能感兴趣的:(Lucene)