2015-08-28 103 views
0

如何在弹性搜索中查询两种不同类型。条件中的多个条件或放置匹配全部条件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

您需要使用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 
        ) 
       ); 
      }