我正在使用query_string从Elastic中搜索记录,

查询示例:

GET /stories_qa/_search
{
  "query": {
    "query_string": {
      "query": "Johnson && Johnson"
    }
  }
}

该查询为我提供了相关记录,但是精确匹配记录不在最上面,我想出了如何根据特定字段来增强记录的方法,但是在我的情况下,我不想提供字段并限制搜索范围, ElasticSearch中有一个选项可以实现相同目的。

最佳答案

您可能可以执行以下操作,但是在将其移至生产环境之前,请进行彻底的测试并测试多个场景。

POST <your_index_name>/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "bool": {
            "must": [
              {
                "query_string": {
                  "query": "\"Karnataka Delhi\"",
                  "default_operator": "AND"
                }
              }
            ]
          }
        },
        {
          "query_string": {
            "query": "Karnataka Delhi",
            "default_operator": "OR",
            "boost": 2
          }
        },
        {
          "query_string": {
            "query": "Karnataka Delhi",
            "default_operator": "AND",
            "boost": 4
          }
        }
      ]
    }
  }
}

希望这可以帮助!

09-30 18:48