我正在尝试查找不包含“open_location”字段的所有结果。我正在使用以下代码。但这给了我打印结果的错误。错误是
parsing_exception:没有为[已过滤]注册任何[查询]
我已经看到了这个问题以寻求解决方案,
Best way to check if a field exist in an Elasticsearch document
但
请帮我...
$index_name=$db_name.'_temp_traking';
$para= [
'index' => $index_name,
'type' => $index_name,
'body' => [
'query' => [
'filtered' => [
'filter' => [
'bool' => [
'must_not' => [
'missing' => [
'field' => 'open_location'
]
]
]
]
]
]
]
];
$response = $client->search($para);
最佳答案
过滤后的查询已在Elastic 5中弃用并删除,我想这就是您正在使用的查询。另外,您说您正在寻找不包含该字段的文档,但是您的代码说它“一定”不会“丢失”。
如果需要该字段不存在,请尝试以下操作:
"query": {
"bool": {
"must_not": {
"exists": {
"field": "open_location"
}
}
}
}
关于php - parsing_exception:没有为[已过滤]注册任何[查询],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42441298/