作者 邓超

搜索

... ... @@ -109,6 +109,11 @@ class MailListV2Es2 extends Base {
if($keyword){
$where['subject'] = $keyword;
}
$query = [
'bool'=>[
'must' => []
]
];
// 联系人
$address = app()->request('address');
if($address){
... ... @@ -121,6 +126,13 @@ class MailListV2Es2 extends Base {
$where['from.email'] = $address['from'];
}
}
}else{
$query['bool']['must'][] = [
"bool" => ["should"=>[
["match_phrase" => ["from.email"=>$address]],
["match_phrase" => ["to"=>$address]],
]]
];
}
}
... ... @@ -140,11 +152,7 @@ class MailListV2Es2 extends Base {
unset($where['is_hots'],$where['is_auto'],$where['deleted']);
}
$query = [
'bool'=>[
'must' => []
]
];
foreach ($where as $k=>$v){
if($k=='subject'){
if($v){
... ... @@ -235,7 +243,7 @@ class MailListV2Es2 extends Base {
// 手动触发同步es
// 手动触发同步es
if(empty($v['is_auto']) && $v['folder_name']=='收件箱' && isAiAutoMail($v['from'],$v['subject'])) redis()->rPush('sync_to_es',$v['id'].'.1');
if(empty($v['is_auto']) && $v['folder_name']=='收件箱' && isAiAutoMail($v['from'],$v['subject'])) redis()->rPush('sync_to_es',$v['id'].'.1');
return $v;
... ... @@ -262,10 +270,10 @@ class MailListV2Es2 extends Base {
if(!empty($assign['assign'])){
if(!empty($assign['from'])){
$f = [
'query_string'=>[
'query'=>(str_contains($folder, '发件箱')?'to':'from.email').':('.implode(' OR ',array_map(function($e){return '"'.$e.'"';},$assign['from'])).')'
]
];
'query_string'=>[
'query'=>(str_contains($folder, '发件箱')?'to':'from.email').':('.implode(' OR ',array_map(function($e){return '"'.$e.'"';},$assign['from'])).')'
]
];
}
$r = [
'bool' => [
... ... @@ -443,9 +451,9 @@ class MailListV2Es2 extends Base {
if($seen!==null){
$body['query']['bool']['must'][] = ['term'=>['seen'=>$seen]];
}
$body['query']['bool']['must'][] = ['term'=>['is_hots'=>0]];
$body['query']['bool']['must'][] = ['term'=>['folder_as_int'=>folder2int($folder)]];
if($this->assignSql($folder)) $body['query']['bool']['must'][] = $this->assignSql($folder);
// logs('count :'.json_encode($body));
... ... @@ -471,7 +479,7 @@ class MailListV2Es2 extends Base {
private function countFlagged($body){
$body['query']['bool']['must'][] = ['term'=>['flagged'=>1]];
$body['query']['bool']['must'][] = ['terms'=>['folder_as_int'=>[1,2,3,4,5]]];
if($this->assignSql('收件箱'))
$body['query']['bool']['must'][] = $this->assignSql('收件箱');
... ...