我想在搜索索引之前更改相似度。我所做的是:
QueryParser parser = new QueryParser(Version.LUCENE_43, "field", standarAnalyzer);
System.out.println("similarity before: " + parser.getFuzzyMinSim());
parser.setFuzzyMinSim(0.6f);
System.out.println("similarity after: " + parser.getFuzzyMinSim());
Query query = parser.parse(inputString); // inputString is given by the user
System.out.println("Querystring: " + query.toString());
现在,当inputString =“something~”时,我得到了这个输出
similarity before: 2.0
similarity after: 0.5
Querystring: field:something~2 // Why 2!?
我的问题:
答案 0 :(得分:4)
FuzzyQuery
已经发生了重大变化。“〜”之后的数字是最大编辑距离,而不是最小相似度。我并不清楚FuzzyMinSim
如何映射到最大编辑距离,就像StandardQueryParser
生成FuzzyQuery
时一样。请注意,不推荐在4.x中使用DefaultFuzzyMinSim。
编辑距离2是默认最大值,FuzzyQuery
类不支持编辑距离大于2,因此标准查询解析器不支持。