作者 邓超

调整超迹标签搜索规则

... ... @@ -202,14 +202,51 @@ class HomeEs extends Base {
// 超迹 带标签搜索
if(app()->request('search_tags') && $ids){
// 钉钉 @胡淑芬(胡淑芬) 时间 2026-09-01 17:56 提出修改
// 查询id对应的发件人
$search_lists = $this->es->search(['query'=>['bool'=>["must"=>[["terms"=>['uuid'=>$ids]]]]],"_source" => ["from.email"]],0,10000);
$search_lists = $this->es->search(['query'=>['bool'=>["must"=>[["terms"=>['uuid'=>$ids]]]]],"_source" => ["from.email",'to','folder_as_int']],0,10000);
if(!empty($search_lists['hits']['hits'])){
$query['query']['bool']['must'][] = ['query_string'=>[
'query'=>'from.email:('.implode(' OR ',array_map(function($e){
return '"'.$e['_source']['from']['email'].'"';
},$search_lists['hits']['hits'])).')']
];
$from_emails = [];
$to_emails = [];
foreach($search_lists['hits']['hits'] as $hit){
$folder_as_int = isset($hit['_source']['folder_as_int'])?(int)$hit['_source']['folder_as_int']:0;
if(in_array($folder_as_int,[2,3])){
$tos = explode(',',$hit['_source']['to']);
foreach($tos as $to){
if($to){
$to_emails[] = $to;
}
}
}else{
if(!empty($hit['_source']['from']['email'])){
$from_emails[] = $hit['_source']['from']['email'];
}
}
}
$from_emails = array_unique($from_emails);
$to_emails = array_unique($to_emails);
$tag_query = ['bool'=>['should'=>[],'minimum_should_match'=>1]];
if($from_emails){
$tag_query['bool']['should'][] = ['query_string'=>[
'query'=>'from.email:('.implode(' OR ',array_map(function($e){
return '"'.$e.'"';
},$from_emails)).')']
];
}
if($to_emails){
$tag_query['bool']['should'][] = ['query_string'=>[
'query'=>'to:('.implode(' OR ',array_map(function($e){
return '"'.$e.'"';
},$to_emails)).')']
];
}
if(empty($tag_query['bool']['should'])){
$query['query']['bool']['must'][] = ['term'=>[
'uuid'=> 0
]];
}else{
$query['query']['bool']['must'][] = $tag_query;
}
}else{
$query['query']['bool']['must'][] = ['term'=>[
'uuid'=> 0
... ...