Yii2 elasticSearch 多值查询的例子,相当于关系型数据库的in查询
$should = [];
if(is_array($customers) && !empty($customers)){
foreach($customers as $one){
$should[] = ['term' => ['customer_id' => $one['customer_id']]];
}
}
$filter_arr['bool']['should'] = $should;
$result = $obj::find()->filter($filter_arr)
->query($query_arr)
->asArray()
->limit(0)
->offset(33)
->all();
$data = BaseArrayHelper::getColumn($result, '_source');
- $should = [];
- if(is_array($customers) && !empty($customers)){
- foreach($customers as $one){
- $should[] = ['term' => ['customer_id' => $one['customer_id']]];
- }
- }
- $filter_arr['bool']['should'] = $should;
- $result = $obj::find()->filter($filter_arr)
- ->query($query_arr)
- ->asArray()
- ->limit(0)
- ->offset(33)
- ->all();
- $data = BaseArrayHelper::getColumn($result, '_source');
$should = [];
if(is_array($customers) && !empty($customers)){
foreach($customers as $one){
$should[] = ['term' => ['customer_id' => $one['customer_id']]];
}
}
$filter_arr['bool']['should'] = $should;
$result = $obj::find()->filter($filter_arr)
->query($query_arr)
->asArray()
->limit(0)
->offset(33)
->all();
$data = BaseArrayHelper::getColumn($result, '_source');
查询数组字段,$filter的定义如下:
$filter_arr = [
'bool' => [
'must' => [
['term' => ['emails' => $email],]
]
],
];
- $filter_arr = [
- 'bool' => [
- 'must' => [
- ['term' => ['emails' => $email],]
- ]
- ],
- ];
$filter_arr = [
'bool' => [
'must' => [
['term' => ['emails' => $email],]
]
],
];