我刚开始进行弹性搜索。通过开始工作,我的意思是我必须查询已经运行的弹性数据库。他们遵循的正则表达式是否有很好的文档。我知道他们的官方网站上的那个,但不是很有帮助。
更具体的问题是我想查询以下行:
10:02:37:623421|0098-TSOT {TRANSITION} {ID} {1619245525} {securityID} {} {fromStatus} {NOT_PRESENT} {toStatus} {WAITING}
或
01:01:36:832516|0058-CT {ADD} {0} {3137TTDR7} {23} {COM} {New} {0} {0} {52} {1}
以及更多类似的结构。我不要通用的正则表达式。如果可能的话,有人可以给我每一个可以弹性运行的正则表达式吗?
我注意到,当我运行regexp时,如果正则表达式也与子字符串匹配,那么它也会匹配:
query = {"query":
{"regexp":
{
"message": "[0-9]{2}"
}
},
"sort":
[
{"@timestamp":"asc"}
]
}
但是如果我使用,它将不匹配任何内容
query = {"query":
{"regexp":
{
"message": "[0-9]{2}:.*"
}
},
"sort":
[
{"@timestamp":"asc"}
]
}
我想编写更具体的正则表达式,并且对于顶部附近给出的两个示例而言,它们是不同的。
答案 0 :(得分:0)
原来我的消息以令牌化形式而不是原始形式出现,并且:
是令牌化程序的默认定界符之一,具有弹性。作为一个原因,我不能对整个消息使用正则表达式查询,因为它分别与每个令牌匹配。