【问题标题】:Elastic filter with dot (.) in name名称中带有点 (.) 的弹性过滤器
【发布时间】:2018-02-11 18:05:48
【问题描述】:

我对 ELK 很陌生,似乎从复杂的问题开始 ;-) 我的元素如下所示:

{
    "_index": "asd01",
    "_type": "doc",
    "_id": "...",
    "_score": 0,
    "_source": {
      "@version": "1",
      "my-key": "hello.world.to.everyone",
      "@timestamp": "2018-02-05T13:45:00.000Z",
      "msg": "myval1"
    }
  },
  {
    "_index": "asd01",
    "_type": "doc",
    "_id": "...",
    "_score": 0,
    "_source": {
      "@version": "1",
      "my-key": "helloworld.from.someone",
      "@timestamp": "2018-02-05T13:44:59.000Z",
      "msg": "myval2"
    }

我想过滤以“hello”开头的 my-key。并想忽略以“helloworld.”开头的元素。点似乎被解释为通配符,并且每种转义似乎都不起作用。

使用过滤器,因为我希望能够在 Kibana 以及 API 中直接使用相同的表达式。

有人能告诉我如何让它与 Elasticsearch 6.1.1 一起工作吗?

【问题讨论】:

    标签: elasticsearch kibana elastic-stack kibana-6


    【解决方案1】:

    它没有被用作通配符,它​​只是被默认分析器(标准分析器)删除。如果您不指定映射,elasticsearch 将为您创建一个。对于字符串字段,它将创建一个多值字段,默认为文本(带有默认分析器 - 标准)和带有关键字分析器的关键字字段。如果您不希望这种行为,则必须在创建索引期间明确指定映射,或者更新它并重新索引数据

    试试这个

    GET asd01/_search
    {
      "query": {
        "wildcard": {
          "my-key.keyword": {
            "value": "hello.*"
          }
        }
      }
    }
    

    【讨论】:

    • 谢谢,帮了我很多忙!
    • 如果它有帮助,那么您也可以接受答案
    猜你喜欢
    • 2021-04-11
    • 2020-06-20
    • 1970-01-01
    • 2017-08-07
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多