我的ES索引文档是nginx日志数据,如:
{
"_index": "nginx-2017-04-30",
"_type": "access",
"_id": "AVu8nYNM_NKHiROBoHkE",
"_score": null,
"_source": {
"cookie_logintoken": "-",
"request_time": "0.000",
"request": "POST /login/getMobileLoginCode HTTP/1.1",
"http_protocol": "https",
"request_id": "a6fb53fcf28b7d6b400f0611ac697f0d",
"@timestamp": "2017-04-30T10:08:11+08:00",
"http_user_agent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)",
"http_x_forwarded_for": "-",
"request_uri": "/login/getMobileLoginCode",
"remote_addr": "xxxxxxx",
"http_ver": "-",
"status": "503",
"request_method": "POST",
"hostname": "master",
"request_body": "-",
"upstream_response_time": "-",
"http_vm": "-", # my custom http header
"remote_user": "-",
"http_referer": "-"
},
"fields": {
"@timestamp": [
1493518091000
]
},
"sort": [
1493518091000
]
}
我想使用kibana搜索值为http_vm(my custom http header)
的所有"-"
。
我尝试输入搜索查询但失败,kibana返回空结果。
我的搜索查询:
http_vm:"-"
http_vm:"\\-"
http_vm:\\-
http_vm:(\\-)
我如何搜索" - "领域?
感谢@logan rakai,我找到了方法。
您正在运行哪个版本的ES?很可能标准分析器正在分析您的http_vm字段,这会消除标点符号。在ES 5中,存在未分析的关键字子字段。在早期版本中,您可以更改索引映射以使字段not_analyzed。 - logan rakai
此查询有效:
http_vm.keyword:" - "