根据权重提升搜索结果

Boost search results according to weight

我是 elasticsearch 的新手,所以很难弄明白。

所以问题是我正在尝试搜索带有标签的内容,这些标签会有权重,就像,

{
  tag: "tag name",
  weight: 1
}

现在我正在尝试这个查询

{
  "query": {
    "bool": {
      "should": [
        {
          "multi_match": {
            "query": "do",
            "fields": [
              "name",
              "tags.tag"
            ],
            "type": "phrase_prefix"
          }
        }
      ]
    }
  }
}

但我不知道如何修改搜索,使搜索结果优先考虑标签权重。

谢谢。

不确定我是否理解正确你的问题...你想获取标签权重并用它影响搜索结果得分吗?如果是,请看一下script score。根据文档,您可以执行以下操作:

{
  "query": {
    "function_score": {
      "query": {
        "match": { "message": "elasticsearch" }
      },
      "script_score" : {
        "script" : {
          "source": "Math.log(2 + doc['likes'].value)"
        }
      }
    }
  }
}