我在 ELK 中有一些数据,结构如下:
{
"_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"
}
}
我可以成功使用正则表达式过滤器来过滤Details
列中冒号之后的值:
{
"query": {
"regexp": {
"Details": {
"value": "[0-9]{5}"
}
}
}
}
这会突出显示包含5位数的所有accountId / otherId值。
但如果我尝试过滤名称(I.E. EventsCount / accountId / otherId或“accountId:12345”),我不会得到任何结果。
详细信息只是一个字符串字段,因此其内容应该一起被视为一个大字符串,但由于某种原因, ELK 不会在冒号和/或空格和冒号之前搜索名称)
如何搜索实例:EventsCount: [0-9]{4}
?
版本5.3.0
映射:
"Details": {
"type": "text",
"norms": false
},