您能帮助我理解为什么简单查询无法正常工作吗? 我有一个默认设置的简单索引:
PUT my_index/doc/1
{
"path": "C:\\Windows\\system32\\cmd.exe"
}
为什么以下查询不返回任何内容?
GET my_index/_search
{
"_source": "path",
"query": {
"query_string": {
"query": "(path: *\\system32\\*.exe)"
}
}
}
答案 0 :(得分:0)
您应该像这样在查询中指定字段。
GET sample-index/_search
{
"query": {
"query_string" : {
"fields" : ["path.keyword"],
"query" : """*\\system32\\*.exe"""
}
}
}
我得到的输出是:
{ "took": 13,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0 },
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "sample-index",
"_type": "doc",
"_id": "1",
"_score": 1,
"_source": {
"path": """C:\Windows\system32\cmd.exe"""
}
}
]
}
}
这里,我使用 path.keyword 时,就像您在未映射的情况下发布新字段(就像您在问题中所做的那样)时,默认情况下会为其创建关键字字段。 check here for more
额外提示:如果要检查多个字段(例如:path,path1,pathcc等),也可以在字段部分上应用正则表达式
GET sample-index/_search
{
"query": {
"query_string" : {
"fields" : ["path*"],
"query" : """*\\system32\\*.exe"""
}
}
}