首页 文章

Elasticsearch结合了多个条件并按分数排序

提问于
浏览
0

按 Headers 搜索文档时,我使用_score排序,结果很好,文档与搜索关键字匹配 .

但我的文件有自己的分数 . 当我使用多种排序时(质量评分第一和_score的弹性第二) . 结果显示qualityScore排名第一,但 Headers 与搜索关键字不匹配 .

我如何结合_score多个条件?

有人有意,请帮帮我 . 谢谢提前 .

这是我的查询

GET member-recipes/_search
{
  "sort": [
    {
      "qualityScore": {
        "order": "desc"
      }
    },
    "_score"
  ],
    "query": {
      "bool": { 
       "must": [
          { "match": {"title": "21-Day-Fix-Instant-Pot-Chicken-Marsala-Stove-top-896247"}}
        ]
      }
    }
}

1 回答

  • 0

    您可以将 function_score 搜索查询与qualityScore一起用作 field_value_factor (例如,使用square作为修饰符)

    GET /_search
     {
      "query": {
        "function_score": {
          "field_value_factor": {
            "field": "qualityScore",
            "factor": 1.2,
            "modifier": "sqrt",
            "missing": 1
          },
          "query": {
            "match": {
              "title": "21-Day-Fix-Instant-Pot-Chicken-Marsala-Stove-top-896247"
            }
          }
        }
      }
    }
    

相关问题