elasticsearch - 与Elasticsearch 7中的双引号完全匹配

标签 elasticsearch

我以前使用双引号来实现“完全匹配”(此处并不意味着在术语级别上完全匹配,“Nike Air”应与“nike air”相匹配,但不应与“Nike Air Force”相匹配)( 2.x,5.x):

GET some-index/_search
{
  "query": {
    "match": {
      "brandName": "\"Nike Air\""
    }
  }
}

所以我只会得到“Nike Air”,而不是“Nike Air Force”。但是该查询在ES 7下不起作用-还会返回“Nike Air Force”。如何在ES 7下达到相同的目的?

这是some-index的映射定义:
{
  "some-index" : {
    "mappings" : {
      "properties" : {
        "brandName" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
      }
    }
  }
}

最佳答案

Match查询搜索 token 。因此它在文档中搜索代币耐克和空气

如果您打算进行完全匹配,请在关键字字段上使用term查询

 "query": {
    "term": {
      "brandName.keyword": "Nike Air"
    }
  }

关于elasticsearch - 与Elasticsearch 7中的双引号完全匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58332028/

相关文章:

elasticsearch - 从完整Elasticsearch索引中删除文档

json - PostgreSQL-JSON

elasticsearch - 在ElasticSearch中查询动态对象类型

groovy - Elastic Search,字段名以at号开头

elasticsearch - fragment_size 在 elasticsearch 突出显示中的奇怪行为

elasticsearch - 在ElasticSearch中替换(批量更新)嵌套文档

linux - 如何配置 ElasticSearch 在崩溃后重启

python - 干草堆:stats()和stats_results()不起作用

elasticsearch - Elasticsearch查询match_all

elasticsearch - Elasticsearch相关性-具有相似名称的文档