gpt4 book ai didi

java - 精确 PrefixQuery 得分更高

转载 作者:行者123 更新时间:2023-11-30 06:23:50 29 4
gpt4 key购买 nike

我总是想给精确匹配比只匹配前缀的分数更高的分数(例如,“ball”在与“ball*”匹配时应该比“ballistic”得到更高的分数)。

我当前(详细)的方法是在创建 PrefixQuery 时始终执行两行而不是一行,例如

q.add(new PrefixQuery(new Term("field", t)), Occur.SHOULD);
q.add(new TermQuery(new Term("field", t)), Occur.SHOULD);

有没有办法在不这样做的情况下获得相同的分数?

最佳答案

这几乎是实现您所寻找目标的标准方法。类似地,您也会看到类似 field:term* field:term^2 的模式在使用查询解析器时出现。

如果您发现自己经常重新创建此逻辑,我会创建一个要使用的自定义前缀查询,大致如下:

public class MyPrefixQuery extends BooleanQuery {
public MyPrefixQuery(Term t){
add(new PrefixQuery(t), Occur.SHOULD);
add(new TermQuery(t), Occur.SHOULD);
}
}

关于java - 精确 PrefixQuery 得分更高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17723025/

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