elasticsearch 如何在Kibana Discovery中使用斜杠(';/';)?
我正在测试ELK stack的nginx访问日志。它看起来不错,只是我没有找到一种在Kibana Discovery(v5.3.2)中使用以elasticsearch 如何在Kibana Discovery中使用斜杠(';/';)?,elasticsearch,kibana,elasticsearch,Kibana,我正在测试ELK stack的nginx访问日志。它看起来不错,只是我没有找到一种在Kibana Discovery(v5.3.2)中使用以“/test/a”开头的路径搜索记录的方法。如果我删除斜杠,搜索就可以工作,但在这种情况下,我得到了我不需要的-“/ololo/ololo?test=1” 我试过不同的要求: path:/\/test\/a/ path:/\\/test\\/a/ path:"/test/a" path:"\/test\/a" path:"\\/test\\/a" 但没有什
“/test/a”
开头的路径搜索记录的方法。如果我删除斜杠,搜索就可以工作,但在这种情况下,我得到了我不需要的-“/ololo/ololo?test=1”
我试过不同的要求:
path:/\/test\/a/
path:/\\/test\\/a/
path:"/test/a"
path:"\/test\/a"
path:"\\/test\\/a"
但没有什么能像我预期的那样起作用
记录:
[
{
...
"path": "/test/a1"
...
},
{
...
"path": "/test/a2"
...
},
{
...
"path": "/ololo/ololo?test=1"
...
},
]
映射:
"path": {
"type": "string",
"index": "analyzed",
},
有没有办法使用斜杠作为模式的一部分进行搜索
更新:
这些模式也不起作用:
path:/.*\/test\/a.*/
path:/[\/]test[\/]a/
您需要将
路径
字段的映射更改为不进行分析,否则斜杠将不会被索引
映射应如下所示:
"path": {
"type": "string",
"index": "not_analyzed", <--- change this
},
“路径”:{
“类型”:“字符串”,
“索引”:“未分析”,使用此查询作为示例:
{
"query": {
"query_string": {
"fields": [
"path.keyword"
],
"query": "\\/test\\/a\\/*",
"analyzer": "keyword",
"analyze_wildcard": true
}
}
}
它不起作用。路径:“/test/a”
不返回任何内容,而不是记录/test/a1
和/test/a2
。这起作用:路径:“/test/a1”
或路径:“/test/a2”
,但这不是我需要的。哦,对不起,我误读了你的问题,我错过了你需要搜索路径前缀的事实。在这种情况下,你应该能够搜索路径:/test/a*
(不带双引号)。试试看。路径:/test/a*
返回所需的记录(/test/a1
,/test/a2
),但也会返回大量的/ololo?test=1
。看起来此模式会返回包含wordtest
的所有记录。那么让我们尝试更涉及正则表达式的内容。尝试以下操作:路径:/^\/test\/a.*/
路径:/^\/test\/a./
-未找到任何结果。