//创建索引,添加数据
$client = ClientBuilder::create()->setHosts(config('app.es'))->build();
$data = Users::select()->toArray();
foreach ($data as $k=>$v){
$params = [
'index'=>'add',//类似库名
'type'=>'_doc',//类似表名
'body'=>$v
];
$res = $client->index($params);
}
//高亮检索
$seek = input('seek');
$page = input('page');
$limit = input('limit');
$offset = ($page-1)*$limit;//偏移量
$count = Users::select()->count();
if (empty($seek)){
$data = Users::limit($offset,$limit)->select();
return json(['code'=>0,'data'=>$data,'count'=>$count]);
}
$client = ClientBuilder::create()->setHosts(config('app.es'))->build();
$params = [
'index' => 'add',
'body' => [
'query' => [
'match' => [
'username' => $seek
]
],
'highlight' => [
'pre_tags' => ["<em style='color: red'>"],
'post_tags' => ["</em>"],
'fields' => [
"username" => new \stdClass()
]
]
],
'from'=>$offset,
'size'=>$limit
];
$results = $client->search($params);
foreach ($results['hits']['hits'] as $k => $v){
$results['hits']['hits'][$k]['_source']['username'] = $results['hits']
['hits'][$k]['highlight']['username'][0];
}
$res = array_column($results['hits']['hits'],'_source');
return json(['code'=>0,'data'=>$res,'count'=>$count]);
//线上es配置
'es'=>[[
'host' => 'es-csn91h5k.public.tencentelasticsearch.com',
'port' => '9200',
'scheme' => 'https',
'user' => 'elastic',
'pass' => '1901phpA'
]]
kB
https://es-csn91h5k.kibana.tencentelasticsearch.com:5601/login?next=%2F
Month tp5 ES搜索
最新推荐文章于 2024-05-30 10:34:44 发布