我想在弹性搜索查询中传递 AND 条件。 如果"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],
];
}
任何帮助或参考都会很棒。
您需要
单独添加每个term
约束:
if ($manufacture > 0 && $network > 0) {
$params['body']['query']['bool']['must'][] = [
'term' => ['manuf_id' => $manufacture]
];
$params['body']['query']['bool']['must'][] = [
'term' => ['network_id' => $network]
];
}