php - parsing_exception:没有为[已过滤]注册任何[查询]

标签 php search elasticsearch laravel-5.3

我正在尝试查找不包含“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/

相关文章:

php - Docker,引用不同的容器。使用 php 命令调用 mysqldump

php - 如何结合数据库、文本区域等正确处理字符集

java - java中如何查找字符串

elasticsearch - 不能使用馆长3.4.1删除我的ELK版本:5.6.5中的日志

elasticsearch - Elasticsearch 在Spring Boot应用程序中不起作用

javascript - javascript ajax 帖子中出现错误

php - 在分页中突出显示当前页面?

mysql搜索和索引性能

Android - 为 RecyclerView 实现搜索过滤器

mongodb - Scrapy MongoDB和Elasticsearch同步