ElasticSearch匹配查询返回Kibana中的精确匹配

slmsl1lt  于 2022-11-22  发布在  ElasticSearch
关注(0)|答案(1)|浏览(202)

我正在搜索elasticsearch与下面的匹配查询,匹配查询是返回完全匹配,这是一个惊喜,因为它不应该返回完全匹配,至少这是什么提到的文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.8/query-dsl-match-query.html
我正在使用ElasticSearch7.8.1
请在下面查找我的查询:

get pin_code/_search
{
   "query" : {
      "match" : {
         "Village/Locality name": "Burj"
      }
   }
}

以上查询返回“Village/Locality name”为“Burj”的文档,但我希望返回Village/Locality name如下所示的文档:

Burj
Burj Seda
Burj Khalifa
Burj zedran

请提供您的宝贵建议。

omhiaaxx

omhiaaxx1#

我认为“Village/Locality name”是您的完整字段名称。现在的问题可能与您的索引的相应字段的Map有关。如果您发现以下Map-
GET引脚代码/Map

{
  "pin_code" : {
    "mappings" : {
      "properties" : {
        "Village/Locality name" : {
          "type" : "keyword"
        }
      }
    }
  }
}

更改如下-

{
  "pin_code" : {
    "mappings" : {
      "properties" : {
        "Village/Locality name" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
      }
    }
  }
}

现在,您可以运行查询,并可以看到查询响应中返回的所有提到的关键字。

GET pin_code/_search
{
   "query" : {
      "match" : {
         "Village/Locality name": "Burj"
      }
   }
}

相关问题