计算算法查询中过滤器子集的平均分数

时间:2019-01-07 22:10:48

标签: algolia

我对阿尔及利亚的过滤器评分有疑问。我想获得一个过滤器子集的平均得分,然后将其求和为其他过滤器的得分。

我有一个称为职位的索引。它具有3个用于刻面的属性:

  1. freshnessHoursOld:字符串,例如429685
  2. locations:字符串数组,例如[墨尔本,悉尼,珀斯]
  3. ageRange:字符串,例如50plus

在我的Algolia查询中,我按照以下方式分配分数

freshnessHoursOld:429685<score=50> or freshnessHoursOld:429600<score=10> 
or location:Melboure<score=10> or location:Sydney<score=7> or 
location:Perth<score=5> or ageRange:50plus<score=40>

问题是–如果某个帖子的位置数组为[墨尔本,悉尼,珀斯],则所有三个位置得分都将匹配,并且位置匹配的得分将为10 + 7 + 5。根据匹配情况,还会添加ageRange和FreshHoursOld分数。

我想要的是-如果某个帖子的位置数组为[墨尔本,悉尼,珀斯],则平均分配3个位置匹配值,即(10 + 7 + 5)/ 3或仅是最高的或3中的最低者用作位置部分的得分。然后,根据匹配情况,还会添加ageRange和FreshHoursOld得分。

我知道参数 sumOrFiltersScores 。但是将其设置为false意味着它在所有参数(位置,ageRange,freshnessHoursOld)中占据最高的位置。并将其设置为true意味着它将汇总所有过滤器匹配项的分数。

但是我希望能够取参数的子集的最高或最低值或平均值,在这种情况下,这些参数是位置数组。发生匹配时,其他得分(ageRange和freshnessHoursOld)也将添加到该值。

0 个答案:

没有答案