如何在 kibana 的字段值中搜索“-”?

How do I search for a "-" in a field value in kibana?

这是该字段的映射:

"username": {
  "type": "text",
  "norms": false,
  "fields": {
    "keyword": {
      "type": "keyword"
    }
  }
},

我有一个字段偶尔会有“-”的值:

我点击了 "filter for value",这是它创建的过滤器:

但是当我搜索这个值时,它说找不到结果。

如何转义“-”?

我试过“\-”但没有骰子

我尝试检查值 "exists" 是否如建议的那样,但这也是 returns 0 结果:

还在 kibana 搜索栏中尝试了 !(_exists_:"username"),结果也是 returns 0。

还 运行 (_exists_:"username") 包含了带有和不带有用户名字段值的文档

我也试过 returns 0 个结果:

(_missing_:"username")

由于您的 username 字段是 text 类型并使用 standard analyzer 进行分析,倒排索引将没有 username 的标记,而 username.keywordkeyword 类型,它将在倒排索引中具有准确的值 -

您可以通过以下方式进行搜索:

  1. 来自 Kibana 搜索栏:

    username.keyword: "-"

  2. 来自 Kibana 过滤器:

    { "term": { "username.keyword": "-" } }

  3. 来自 Sense 插件:

    GET _search { "query": { "term": { "username.keyword": "-" } } }