Mar*_*een 3 php mongodb elasticsearch elasticsearch-plugin
我使用的是最新版本的elasticsearch-php以及最新版本的MongoDB和ElasticSearch.
我需要在可以包含一个或多个值的多个字段上进行搜索.例:
country_code应为NL,BE或DE,类别应包含AA01,BB01,CC02或ZZ11
我以为我会按照以下方式解决它(PHP):
$countries = array(“NL”, “BE”, “DE”);
$category = array(“AA01”, “BB01”, “CC02”, “ZZ11”);
$searchParams['body']['query']['bool']['must']['terms']['country'] = $countries;
$searchParams['body']['query']['bool']['must']['terms']['categories'] = $category;
$searchParams['body']['query']['bool']['must']['terms']['minimum_should_match'] = 1;
Run Code Online (Sandbox Code Playgroud)
但结果甚至没有接近我希望得到的数据.
有时$ States和/或$ category只能有一个元素.
这是因为PHP数组的工作方式,terms
每次都要覆盖查询,而是尝试以下方面:
array(
'body' => array('query' =>
'bool' => array(
'must' => array(
array('terms' => array('country' => implode(' ', $countries))),
array('terms' => array('category' => implode(' ', $category))),
)
)
))
Run Code Online (Sandbox Code Playgroud)
minimum_should_match
与must
查询的子句无关.
归档时间: |
|
查看次数: |
2743 次 |
最近记录: |