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

时间:2018-04-04 11:07:38

标签: elasticsearch

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

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

如何组合_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 :(得分:1)

您可以使用function_score质量得分为field_value_factor的搜索查询(例如将方形作为修饰符)

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"
        }
      }
    }
  }
}