在弹性搜索中提升价值

时间:2015-03-05 03:42:13

标签: curl elasticsearch

我想在字段中设置值的提升,同时在弹性搜索中搜索以下字符串

指数值

id title
1. stack installer
2. stack
3. stack material
4. installer

我使用匹配查询搜索这些值,然后我得到了以下结果

查询:

curl -XGET localhost:XXXX/index/type/_search?pretty -d '{"query":{"matchpharse":
     {"title":"stack installer"},
     "minimum_should_match":90
}'

点击结果:

stack installer
installer
stack material
stack

但是,我需要遵循以下输出顺序

stack installer
stack
stack material
installer

1 个答案:

答案 0 :(得分:0)

在boolean should语句中,您可以提供多个应该查询的查询,并将某些查询提升到其他查询。

curl -XGET localhost:XXXX/index/type/_search?pretty -d '{
  "query": {
    "bool": {
      "should": [
        {
          "match_phrase": {
            "title": "installer stack",
            "boost": 3
          }
        },
        {
          "match": {
            "title": "installer",
            "boost": 2
          }
        },
        {
          "match": {
            "title": "stack",
            "boost": 1
          }
        }
      ]
    }
  }
}'