【发布时间】:2015-09-20 04:37:56
【问题描述】:
我的用例是这样的:
对于查询iphone charger,我与结果的相关性更高,name、iphone charger coupons 比名称为iphone charger,可能是因为description 和其他字段的匹配更好。提升name 字段并没有多大帮助,除非我大幅歪曲了重要性。我真正需要的是tf/idf 在name 字段中提升
引用elasticsearch blog:
字段中术语的频率被字段的长度所抵消。但是,实际评分功能以相同的方式处理所有字段。它将所有标题字段(因为它们很短)视为比所有正文字段(因为它们很长)更重要。
我需要提升特定字段的 more important 值。我们可以通过函数分数或其他方式来做到这一点吗?
【问题讨论】:
-
我认为你从错误的角度考虑这个问题。想想你的要求是什么。
"iphone charger"比其他文本短。这是你想要支持这个文本的规则吗?您需要考虑匹配规则,然后考虑如何实现这一点。不希望与tf/idf混淆,imo。 -
@AndreiStefan 对我来说,名称字段自然比任何其他字段都更重要。但在名称中,即使在匹配之后,相关性也不太可接受,因为一个额外的词会改变一切。所以更少的单词+更多的匹配给了我想要的结果
-
你见过this吗?
-
是的,忽略 tf/idf 可能会导致我反向,导致名称字段更大的产品显示为简单的
iphone charger
标签: elasticsearch lucene tf-idf