【问题标题】:Elasticsearch random scoring with filters带过滤器的 Elasticsearch 随机评分
【发布时间】:2018-11-19 08:13:08
【问题描述】:

我遇到了一种情况,使用 ES 6.5,我可以执行 boolrandom_score,但不能同时执行两者。以下是其中一个潜在的查询:

{
  "from": 0,
  "size": 50,
  "query": {
    "function_score": {
      "random_score": {
        "seed": 10,
        "field": "_seq_no"
      }
    },
    "bool": {
      "filter": [
        {
          "terms": {
            "primary_category": [
              "foobar"
            ]
          }
        },
        {
          "terms": {
            "primary_type": [
              "barbaz"
            ]
          }
        }
      ]
    }
  }
}

如果我要删除 function_score 块或 bool 块,则查询有效,但结合起来,它不会:

[function_score] malformed query, expected [END_OBJECT] but found [FIELD_NAME]

我是否遗漏了有关示例的内容:https://www.elastic.co/guide/en/elasticsearch/reference/6.2/query-dsl-function-score-query.html#function-random

我想要做的就是以可预测的方式“随机排序”我的结果,这种方式可以跨分页等工作。实际上我只是想显示具有高方差的过滤结果,因为任何类型的标准排序都会创建模式在我试图避免的结果中。

任何帮助将不胜感激,我会继续修补它。

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    我想通了。 function_score 应该是 bool 块的一部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多