将Elasticsearch Query从2.0转换为5.0

时间:2016-12-14 18:58:13

标签: elasticsearch

伙计我是弹性搜索的新手,并尝试从2. *迁移到5. *。

我有一个无法转换的查询。我尝试搜索谷歌,以及阅读文档,但其中的示例是非常基本的,并没有真正帮助在这里。也许有人可以帮我将以下查询转换为现代查询?我正在使用php客户端。

$query = [
    'index' => 'index_name',
    'type'  => 'table',
    'body'  => [
        'query' => [
            'filtered' => [
                'query'  => [
                    'bool' => [
                        'must' => [
                            [
                                'match' => [
                                    '_all' => [
                                        'query'     => 'zonda',
                                        'fuzziness' => 1,
                                    ],
                                ],
                            ],
                        ],
                    ],
                ],
                'filter' => [
                    [
                        'term' => [
                            'foo' => 1,
                        ],
                    ],
                ],
            ],
        ],
    ],
    'size'  => 10000,
];

1 个答案:

答案 0 :(得分:0)

没有太多的PHP,所以无法检查它,但它应该是这样的:

$query = [
    'index' => 'index_name',
    'type'  => 'table',
    'body'  => [
        'query' => [
            'bool' => [
                'must' => [
                    [
                        'match' => [
                            '_all' => [
                                'query'     => 'zonda',
                                'fuzziness' => 1,
                            ],
                        ],
                    ],
                ],
                'filter' => [
                    [
                        'term' => [
                            'foo' => 1,
                        ],
                    ],
                ],
            ],
        ],
    ],
    'size'  => 10000,
];

过滤后的查询现已消失,您可以使用bool查询的过滤器部分。