gpt4 book ai didi

java - 在 lucene FuzzyQuery 中改变相似度

转载 作者:行者123 更新时间:2023-11-30 07:14:47 31 4
gpt4 key购买 nike

我想在搜索索引之前更改相似度。我所做的是:

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!?

我的问题:

  1. 为什么相似度一开始设置为2.0(我以为默认是0.5)?
  2. 为什么调用setFuzzyMinSim方法后还是2.0?

最佳答案

FuzzyQuery 在 Lucene 版本 4 中发生了重大变化。“~”后面的数字是最大编辑距离,而不是最小相似度。我不太清楚 FuzzyMinSim 是如何映射到最大编辑距离的,就像 StandardQueryParser 生成 FuzzyQuery 时一样。请注意,使用 DefaultFuzzyMinSim在 4.x 中已弃用。

默认最大编辑距离为 2,FuzzyQuery 类不支持大于 2 的编辑距离,因此标准查询解析器也不支持。

关于java - 在 lucene FuzzyQuery 中改变相似度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18317546/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com