elasticsearch - Elasticsearch -按文档类型排序

标签 elasticsearch

我有一个具有2种不同doc类型的 flex 搜索索引:'a''b'。我想按类型对结果进行排序,并优先考虑type='b'(即使它的得分较低)。我曾经在客户端使用下面的搜索结果并对它们进行排序,但是我意识到这种方法效果不佳,因为我只检查了通常不包含b的前10个结果。增加返回结果并不理想。我想进行 flex 搜索以完成工作。
http://<server>:9200/my_index/_search?q=london

最佳答案

您将需要使用 function_score ,并根据每种文档的评分方式,使用每种类型的test some weight values, boost_mode s and score_mode s。例如:

GET /some_index/a,b/_search
{
  "query": {
    "function_score": {
      "query": {
        # your query here
      },
      "functions": [
        {
          "filter": {
            "type": {
              "value": "b"
            }
          },
          "weight": 3
        },
        {
          "filter": {
            "type": {
              "value": "a"
            }
          },
          "weight": 1
        }
      ],
      "score_mode": "first",
      "boost_mode": "multiply"
    }
  }
}

关于elasticsearch - Elasticsearch -按文档类型排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28212462/

相关文章:

elasticsearch - Elasticsearch river-5次尝试后未找到_meta文档

python - 无法使用 Confluent Elasticsearch 接收器连接器将 Kafka 主题数据转换为结构化 JSON

elasticsearch - 使用Spring Data Elasticsearch设置不同的_id和id字段

elasticsearch - Elasticsearch 的单词分隔符过滤器类型表的有效类型是什么?

elasticsearch - 根映射定义具有不受支持的参数:[_timestamp:{enabled = true}]

elasticsearch - 如何根据elasticsearch数组中重复项的频率过滤结果

c# - 找不到Elasticsearch NEST建议者解析器

docker - 在树莓派 3 上运行 elasticsearch 容器

php - 根映射定义具有不受支持的参数(mapper_parsing_exception)

elasticsearch - Elastic Search 搜索查询返回不正确的结果