我如何搜索" - "在kibana中的字段值?

时间:2017-04-25 19:06:02

标签: elasticsearch lucene kibana

以下是此字段的映射:

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

我有一个偶尔具有" - "的价值的字段: enter image description here

我点击"过滤价值"这是它创建的过滤器:enter image description here

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

如何逃避" - "?

我试过" \ - "但没有骰子

我试过检查值"是否存在"如建议但这也会返回0结果:enter image description here

还在kibana搜索栏中尝试!(_exists_:"username"),并且还返回0结果。

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

我也尝试了这个返回0结果:

(_missing_:"username")

1 个答案:

答案 0 :(得分:1)

由于您的username字段属于text类型且已使用standard analyzer进行分析,因此倒排索引将不包含username的标记,其中username.keyword属于keyword -类型,它在倒排索引中将具有精确值username.keyword: "-"

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

  1. 来自Kibana搜索栏:

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

  2. 来自Kibana过滤器:

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

  3. 来自Sense插件:

    <meta name="csrf-token" content="{{ csrf_token() }}">