术语中的多个条件或者在条件弹性搜索中匹配所有条件

时间:2015-08-28 10:40:49

标签: php elasticsearch

如何在elasticsearch中查询两种不同的类型。

作为一个例子,我已经把条件设置为获取数据类型为男性和女性的数据。

但它不适合我。

任何人都知道如何在术语中放置多个条件或在术语条件中放置全部匹配。

   $typefilter = array('male', 'female');
   if ($request->request->get('male') && $request->request->get('female') ) {
                $params['body']['query']['bool']['must'][] = array(
                    'term' => array(
                        "type" => implode(" ", $type)
                    )
                );
            }

1 个答案:

答案 0 :(得分:1)

您需要使用terms代替term

   $typefilter = array('male', 'female');
   if ($request->request->get('male') && $request->request->get('female') ) {
                $params['body']['query']['bool']['must'][] = array(
                    'terms' => array(                    <--- CHANGE HERE
                        "type" => $typefilter            <--- CHANGE HERE
                    )
                );
            }