【发布时间】:2015-06-07 18:13:49
【问题描述】:
我正在尝试编写一个查询来搜索名为 category1 和 category2 的两列上的产品。我正在使用弹性搜索 php 客户端并尝试使用 match 应该查询,但是由于子字符串的匹配,这给了我错误的结果。
但我正在寻找与两列上的 OR 操作的完全匹配。我是新手,请指导我。
$params['index'] = 'furnit';
$params['type'] = 'products';
$params['body']['query']['bool']['should'] = array(
array('match' => array('category1' => $category->name)),
array('match' => array('category2' => $category->name)),
);
$results = $this->elasticsearch->search($params);
【问题讨论】:
-
如果您有这些类别的类别 ID,您应该使用它,如果您不是在寻找分数和相关性,我认为在类别 ID 上使用布尔过滤器可能是正确的方法去做吧。还要考虑 - 布尔查询的 minimum_number_should_match 参数。
标签: php elasticsearch