【问题标题】:Elasticsearch Multiple Terms to BoostElasticsearch 多个术语来提升
【发布时间】:2018-08-03 13:53:04
【问题描述】:

在过去的一个小时里,我一直在尝试为多重提升查询找到正确的格式,有人可以帮助我正确地编写这个吗?本质上它是一个可以多次执行以下操作的单个查询。

这个作品:

{
    "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 请求提交吗?

【问题讨论】:

    标签: json elasticsearch


    【解决方案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。

    【讨论】:

    • 太棒了!快速响应、工作和澄清 HTTP 问题。非常感谢您,将接受作为答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    相关资源
    最近更新 更多