对具有短字段

时间:2017-03-29 18:25:15

标签: tf-idf algolia

假设我们有一个包含两个对象的索引:

{
"name": "iPhone 6s Plus big screen, super fast, ultra responsive, blah blah"
}

{
"name" : "iPhone 6s Plus"
}

现在,当我搜索 iPhone 6s Plus 时,它返回第一个没有意义的对象,因为第一个对象包含的字数(或噪声)比给定查询的第二个对象多。换句话说,出现在短名称字段中的术语应该比出现在长名称字段中的同一术语带有更多的排名点

Algolia使用TF / IDF算法,该算法考虑了场长规范,因此第二个对象的分数应该高于第一个。

那么为什么第一个对象的得分高于第二个?我缺少任何设置选项吗?

2 个答案:

答案 0 :(得分:0)

我找到了答案,但我不确定它是否100%正确,或者是否有更好的方法来实现这一目标。

登录Algolia - >选择您的实例 - >转到排名标签。

排名公式中,添加一个新行。新行应具有属性类型{{列的名称,在此示例中为“title”}}} 并将其设置为升序

有了这个,你将实现我们正在寻找的目标。

答案 1 :(得分:0)

一种选择是将值分解为两个不同的属性,一个仅用于产品名称,另一个用于描述。这样做还可以让您在可搜索的属性中优先考虑产品名称,这样可以在大多数情况下提高相关性。