Поиск, где оба фильтра соответствуют Elasticsearch - PullRequest
0 голосов
/ 10 октября 2018

Я выполняю поиск сasticSearch, но я хотел бы отфильтровать его, и поиск должен соответствовать обоим фильтрам.

это код:

"query" => [
                            "bool" => [
                                "must" => [
                                    'multi_match'=> [
                                        'query'=> $this->input->get('search'),
                                        'fields'=> ["title^2", "description"]
                                    ]
                                ],
                                "filter" => [
                                    "terms" => [ 
                                        "Categories" => ['Featured Works']
                                    ],
                                    "terms" => [
                                        "Tags" => ['Merida']
                                    ]
                                ]
                            ]
                        ]

Приведите результаты поиска, новозьмите фильтр как ИЛИ, и я хотел бы AND

1 Ответ

0 голосов
/ 10 октября 2018

Проблема заключается в том, как вы определяете свой фильтр terms в ассоциативном массиве PHP.Поскольку оба ключа имеют одинаковые ключи, в вашем запросе окажется только один.Сделайте это следующим образом:

                            "filter" => [
                               [
                                 "terms" => [ 
                                    "Categories" => ['Featured Works']
                                 ]
                               ],
                               [
                                 "terms" => [
                                    "Tags" => ['Merida']
                                 ]
                               ]
                            ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...