ElasticSearch带引号和冒号字符串

aiqt4smr  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(1)|浏览(406)

我的ElasticSearch结果中有一个日志条目,如下所示
“源卷ID”:无

“源卷ID”:'编号:71509 e33 - 3a 1f-4c 5a-a0 a3-e785 ff 92 xxxx'
我碰巧只想找到以uuid作为值的条目
我无法让es匹配source_volid以外的任何内容,无论搜索字符串和转义符是什么
我尝试过“source_volid”:“”“源卷ID”:“”“源卷ID\”:'“和许多其他
无论如何,它始终与source_volid匹配,后者为我提供了日志中的所有条目,其中包括None值。

ruyhziif

ruyhziif1#

Tldr;

当搜索source_volid: ""时,它将匹配每个文档。

溶液

将关键字与bool + must_not查询结合使用应该可以达到目的。

POST /_bulk
{"index":{"_index":"73887408"}}
{"source_volid":""}
{"index":{"_index":"73887408"}}
{"source_volid":"some data"}

GET /73887408/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "term": {
            "source_volid.keyword": ""
          }
        }
      ]
    }
  }
}

ps:确保将字段索引为keyword
这是我的Map。

{
  "73887408": {
    "mappings": {
      "properties": {
        "source_volid": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        }
      }
    }
  }
}

相关问题