一尘不染

如何在Kibana Discovery中使用斜杠('/')?

elasticsearch

我正在为Nginx访问日志测试ELK堆栈。看起来不错,除非我没有找到在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"

但没有什么能像我期望的那样。

记录:

[
{
    ...
    "path": "/test/a1"
    ...
},
{
    ...
    "path": "/test/a2"
    ...
},
{
    ...
    "path": "/ololo/ololo?test=1"
    ...
},        
]

对应:

"path": {
  "type": "string", 
  "index": "analyzed", 
},

有没有办法使用斜杠作为模式的一部分进行搜索?

更新:

这些模式也不起作用:

path:/.*\/test\/a.*/
path:/[\/]test[\/]a/

阅读 812

收藏
2020-06-22

共1个答案

一尘不染

您需要将path字段的映射更改为不进行分析,否则斜杠将不会被索引。

映射应如下所示:

"path": {
  "type": "string", 
  "index": "not_analyzed",    <--- change this
},

请注意,您需要删除索引并使用正确的映射重新创建索引才能使其正常工作。

之后,您将可以使用以下查询进行搜索 path:"/test/a"

2020-06-22