【发布时间】:2014-01-16 02:20:39
【问题描述】:
我正在使用最新版本的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;
但结果甚至没有接近我期望返回的数据。
有时$countries 和/或$category 只能有一个元素。
【问题讨论】:
-
那是因为 PHP 中的数组是如何工作的,你每次都会覆盖
terms键
标签: php mongodb elasticsearch elasticsearch-plugin