1.开启服务
切换到ES的bin目录
双击elasticsearch.bat 启动elasticsearch服务
或者

2.通过访问127.0.0.1:9200,成功开启的话可看到

3.tp5 通过composer 安装对应扩展
composer require elasticsearch/elasticsearch
4.设置并添加elasticsearch数据
//获取数据至elasticsearch
public function setEs()
{
$client = ClientBuilder::create()->build();//获取客户端
$data=\app\common\model\news::select();//获取数据库数据
$data = (new Collection($data))->toArray();//将数据转换成数组格式
foreach ($data as $k=>$v){
$params = [
'index' => 'news',//相当mysql数据库
'type'=>'news',//数据表
'body' => $v//数据
];
$response = $client->index($params);//数据插入elasticsearch
}
dump($response);//打印结果
}
5.获取elasticsearch中数据并修改高亮
//获取elasticsearch中数据
public function getEs()
{
$seek = input('seek');//搜索条件字段
$client = ClientBuilder::create()->build();//创建客户端
$params = [
'index' => 'news',//要查询的库名 要跟设置的一致
'type' => 'news',//查询的表名 要跟设置的表名一致
'body' => [
'query' => [ //查询条件
'match' => [ //进行匹配
'title' => $seek //匹配字段跟条件
]
],
'highlight' => [ //设置高亮
'pre_tags' => ["<span style='color: red'>"], //搜索文字前缀
'post_tags' => ["</span>"], //搜索文字后缀
'fields' => [
"title" => new \stdClass() //搜索字段
]
]
]
];
$results = $client->search($params); //从客户端进行搜索
foreach ($results['hits']['hits'] as $k => $v){ //从结果中找到信息进行循环
$results['hits']['hits'][$k]['_source']['title'] = $results['hits']['hits'][$k]['highlight']['title'][0]; //将信息替换成高亮信息
}
$res = array_column($results['hits']['hits'],'_source');//取出所需数据
print_r($res);//打印数据
}
本文介绍了如何开启Elasticsearch服务,通过127.0.0.1:9200检查服务状态。接着在TP5框架中使用Composer安装Elasticsearch扩展,并设置添加数据。最后,展示了从Elasticsearch获取数据并实现高亮显示的步骤。

1万+

被折叠的 条评论
为什么被折叠?



