mysql — упругое условие поиска AND / BOOL + переполнение стека

Я хочу передать условие И в эластичном поисковом запросе. если ‘manuf_id’ и ‘network_id’> 0, но это не работает должным образом.

 "query" => [
"bool" => [
"must" => [
[
"multi_match" => [
"fields" => ["prod_name", "prod_seo_name"],
"type" => "phrase_prefix",
"query" => $query
]
],

]
]
]

if ($manufacture > 0 && $network > 0) {
$params['body']['query']['bool']['must'][] = [
'term' => ['manuf_id' => $manufacture],
'term' => ['network_id' => $network],
];
}

Любая помощь или ссылка будет здорово.

1

Решение

Вы должны добавить каждый term ограничение отдельно:

if ($manufacture > 0 && $network > 0) {
$params['body']['query']['bool']['must'][] = [
'term' => ['manuf_id' => $manufacture]
];
$params['body']['query']['bool']['must'][] = [
'term' => ['network_id' => $network]
];
}
1

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

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

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