MySQL — Как пройти нулевой фильтр в упругом поиске + Переполнение стека

Я хочу отфильтровать результаты поиска. Я хочу найти, что, если ‘manuf_id’ не указан, то должен вернуть все записи. ниже мой поисковый запрос в упругой.

$params = [
'index' => $this->client->getIndex(),
'type'  => $this->client->getType(),
"from" => $from, "size" => $productPerPage,
'body'  => [
"query" => [
"bool" => [
"must" => [
[
"multi_match" => [
"fields" => ["prod_name", "prod_seo_name"],
"type" => "phrase_prefix",
"query" => 'samsung'
]
],
//$conditionArr
[
"term"=> ["manuf_id"=>null]
]
]
]
]
],
];

Выше запрос не работает. я что-то упускаю? Любая помощь будет отличной.

0

Решение

Вы можете пройти это условие только в случае, когда это необходимо, например так:

$params = [
'index' => $this->client->getIndex(),
'type'  => $this->client->getType(),
"from" => $from, "size" => $productPerPage,
'body'  => [
"query" => [
"bool" => [
"must" => [
[
"multi_match" => [
"fields" => ["prod_name", "prod_seo_name"],
"type" => "phrase_prefix",
"query" => 'samsung'
]
],
]
]
]
],
];
if ($manufId > 0) {
$params['body']['query']['bool']['must'][] = [
'term' => ['manuf_id' => $manufId],
];
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector