我很难在Kibana / Elasticsearch 6.5.4版本中使用正则表达式模式。我要搜索的字段具有以下映射:
"field": {
"type": "text",
"analyzer": "custom_analyzer"
},
当直接向elasticsearch请求时,此字段中的正则表达式搜索会返回多个匹配:
GET /my_index/_search
{
"query": {
"regexp":{
"field": "abc[0-9]{4}"
}
}
}
另一方面,在Kibana的发现/仪表板页面中,以下所有查询都返回空白:
原始查询 - field:/abc[0-9]{4}/
scaped查询 - field:/abc\[0\-9\]\{4\}/
绝望的查询 - field:/.*/
检查kibana对elasticsearch所做的请求会显示以下查询:
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "field:/abc[0-9]{4}/",
"analyze_wildcard": true,
"default_field": "*"
}
}
我希望kibana能够理解双正斜杠语法/my_query/
并制作'regexp query'而不是'query_string'。我用两种查询语言尝试了这个:“lucene”,“kuery”以及启用/禁用可选的“实验查询功能”。
进一步挖掘我发现this old issue说弹性只运行正则表达式到now deprecated _all field。如果这仍然适用,我不确定正则表达式如何在kibana / elastic 6.X中工作。
我错过了什么?任何帮助澄清在Kibana使用正则表达式的条件将非常感激
本主题中的所有其他堆栈问题要么过时,要么与语法问题有关,和/或缺乏对分析器如何处理空格的理解,并且没有向我提供任何帮助。