elasticsearch 在Kibana的文本字段中查找冒号分隔的值,elasticsearch,kibana,elasticsearch,Kibana" /> elasticsearch 在Kibana的文本字段中查找冒号分隔的值,elasticsearch,kibana,elasticsearch,Kibana" />

elasticsearch 在Kibana的文本字段中查找冒号分隔的值

elasticsearch 在Kibana的文本字段中查找冒号分隔的值,elasticsearch,kibana,elasticsearch,Kibana,我在麋鹿中有一些数据,结构如下: { "_index": "...", "_type": "...", "_id": "...", "_score": null, "_source": { "ActivityID": "7aa89a606fb940598c1906fcc315788f", "input_type": "log", "Date": "2017-04-05 15:00:05.0212", "Details": " Data: Ev

我在麋鹿中有一些数据,结构如下:

{
  "_index": "...",
  "_type": "...",
  "_id": "...",
  "_score": null,
  "_source": {
    "ActivityID": "7aa89a606fb940598c1906fcc315788f",
    "input_type": "log",
    "Date": "2017-04-05 15:00:05.0212",
    "Details": " Data:  EventsCount: 1 accountId: 12345 otherId: 12345 sql: SELECT Bla FROM Bla EventId: 5",
    "ThreadID": "21",
    "@version": "1"
  }
}
我可以成功地使用regexp过滤器过滤
Details
列中冒号后面的值:

{
  "query": {
    "regexp": {
      "Details": {
        "value": "[0-9]{5}"
      }
    }
  }
}
这将突出显示包含5位数字的所有accountId/otherId值

但是,如果我尝试筛选名称(即eventscont/accountId/otherId或“accountId:12345”),则不会得到任何结果

详细信息只是一个字符串字段,因此其内容应该被视为一个大字符串,但由于某种原因,ELK没有搜索冒号前面的名称和/或空格和冒号本身)

如何搜索实例:
eventscont:[0-9]{4}

版本5.3.0

映射:

  "Details": {
    "type": "text",
    "norms": false
  },

您可以搜索EventScont:[0-9]*并进行匹配EventScont之后的数字是一位数字。@RoiHatam遗憾的是,它不起作用。
如果对字段进行了分析,并且您无法使用它进行查询,则该字段可能会消失。因此,您可以在插入数据之前进行一些处理,并正确插入
详细信息的每个字段,或者更改新数据上的映射,使其
不被分析
,或者将标记器更改为
空白
(如果要对数据进行一些查询,我个人更喜欢第一个)@Pigueiras不仅仅是
,即使我搜索
EventsCount
,它也没有找到任何东西,好像它在猜测,
是关键,而不仅仅是另一个词。你的映射是什么?