Elsaticsearch按字段得分,然后按数字字段升序排序

时间:2019-08-07 08:31:32

标签: elasticsearch

更新#1:

我通过将以下内容全部禁用或设置为相同的值来解决了一些问题:术语频率,字段-长度范数。

对我有帮助的链接:

Elasticsearch score disable IDF https://www.elastic.co/guide/en/elasticsearch/guide/current/relevance-intro.html

我现在唯一仍然需要弄清楚的部分是如何不对提升得分求和,而我只想在命中/比赛中获得最高提升得分。我目前正在研究具有不同功能的多个查询。

原始问题

在多个字段中搜索时,如果在多个字段中找到一个术语,则分数将一起计算。

是否有可能在我们可以为每个字段定义分数的位置配置评分,如果在字段中找到了一个术语,则将该分数应用于文档并停止检查该术语是否与其他任何字段匹配。即使在多个字段中找到该术语,也不得计算分数。

例如,如果我们有一个标题和描述字段,并且在标题字段和描述字段中找到该术语,则仅应使用标题字段的分数,而不是计算标题和描述分数。另外,标题优先于描述字段。

我想要实现以下结果排序:

我的字段如下:

  • 标题
  • titleWithDecompounder
  • 说明
  • descriptionWithDecompounder
  • 价格

我想按以下顺序对结果进行排序:

  1. 根据标题得分,然后按价格
  2. 按照titleWithDecompounder的得分,然后按照价格
  3. 根据描述得分,然后按价格
  4. 根据descriptionWithDecompounder的得分,然后按价格

我该怎么做(字段分数甚至是一件东西还是只有文档分数)?

到目前为止,我已经尝试过但失败了:

查询时间提升https://www.elastic.co/guide/en/elasticsearch/guide/current/query-time-boosting.html

字段级索引时间提升(又称规范)https://www.elastic.co/guide/en/elasticsearch/guide/current/scoring-theory.html#field-norm

我还阅读了以下内容:https://www.elastic.co/guide/en/elasticsearch/guide/current/practical-scoring-function.html#index-boost

0 个答案:

没有答案