根据重量提升搜索结果

时间:2018-01-26 16:36:34

标签: elasticsearch kibana

我是弹性搜索的新手,所以我很难搞清楚这一点。

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

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

现在我正在尝试此查询

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

但是我不知道如何修改搜索,搜索结果会给标签带来重量。

感谢。

1 个答案:

答案 0 :(得分:1)

不确定我是否理解你的问题...你想获得标签重量并影响搜索结果得分吗?如果是,请查看script score。根据文档,你可以做这样的事情:

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