elasticsearch 如何在Kibana Discovery中使用斜杠(';/';)?,elasticsearch,kibana,elasticsearch,Kibana" /> elasticsearch 如何在Kibana Discovery中使用斜杠(';/';)?,elasticsearch,kibana,elasticsearch,Kibana" />

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

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" 但没有什

我正在测试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"
但没有什么能像我预期的那样起作用

记录:

[
{
    ...
    "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
。看起来此模式会返回包含word
test
的所有记录。那么让我们尝试更涉及正则表达式的内容。尝试以下操作:
路径:/^\/test\/a.*/
路径:/^\/test\/a./
-未找到任何结果。