首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >tf/国防军在战场内的助推

tf/国防军在战场内的助推
EN

Stack Overflow用户
提问于 2015-07-02 07:01:47
回答 1查看 703关注 0票数 0

我的用例是这样的:对于查询iphone charger,我对结果的相关性更高,拥有nameiphone charger coupons而不是名称iphone charger,这可能是因为在description和其他字段中匹配得更好。增强name字段没有多大帮助,除非我大幅度歪曲了重要性。我真正需要的是tf/idf boost在name字段中

引用elasticsearch 博客

字段中项的频率被字段的长度所抵消。然而,实际的评分函数以同样的方式处理所有字段。它将把所有标题字段(因为它们是短的)当作比所有身体字段更重要的字段(因为它们是长的)。

我需要提高特定字段的more important值。我们能用功能评分或其他方法来做这件事吗?

EN

回答 1

Stack Overflow用户

发布于 2015-07-02 10:10:02

长度上的一个术语差异与评分算法没有多大区别(事实上,由于长度范数不精确而可能完全消失)。如果有其他领域的命中,你有很多得分元素可供对抗。

对此,最大值可能是一种合理的方法。它将简单地选择最佳匹配子查询的分数,而不是所有的加性分数和和弦等等。如果您提高了对标题的查询,则可以确保匹配具有强烈的首选。

然后,您可以分配一个"tie_breaker",这样,只有在“标题”分数相匹配时,才会考虑到description子查询的得分。

代码语言:javascript
运行
AI代码解释
复制
{
    "dis_max" : {
        "tie_breaker" : 0.2,
        "queries" : [
            {
                "terms" : { 
                    "age" : ["iphone", "charger"],
                    "boost" : 10
                }
            },
            {
                "terms" : {
                    "description" : ["iphone", "charger"]
                }
            }
        ]
    }
}

另一种解决这类问题的方法,如果您完全知道什么时候与整个字段完全匹配,则分别对该字段的未标记版本进行索引,并查询该字段。与未标记的字段版本的任何匹配都将再次与整个字段内容完全匹配。这将防止您需要依赖长度规范来作出这种决定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31188131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文