Elasticsearch多个术语可以促进

时间:2018-08-03 13:53:05

标签: json elasticsearch

在过去的一个小时里,我一直在努力寻找正确的格式来进行多重增强查询,有人可以帮助我正确地编写此格式吗?本质上,它是一个可以多次执行以下操作的查询。

这有效:

{
    "query": {
        "match" : {
            "title": {
                "query": "brain",
                "boost": 2
            }
        }
    }
}

这是我想要达到的目标,但是没有用。在标题中搜索一个正常术语,在标题中优先搜索另外两个术语。

{
    "query": {
        "match" : {
           "title": {
                "query": "neuron",
            },
            "title": {
                "query": "brain",
                "boost": 2
            },
                "query": "birdsong",
                "boost": 3
            }
        }
    }
}

我想澄清的另一件事是:

  

为了使ElasticSearch能够从   Web应用程序,它们必须作为Post HTTP请求提交?

1 个答案:

答案 0 :(得分:1)

您需要像这样发出bool/should查询:

POST index/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "title": {
              "query": "neuron"
            }
          }
        },
        {
          "match": {
            "title": {
              "query": "brain",
              "boost": 2
            }
          }
        },
        {
          "match": {
            "title": {
              "query": "birdsong",
              "boost": 3
            }
          }
        }
      ]
    }
  }
}

发送查询时,接受GET和POST。