使用命令行开启ES功能
elasticsearch -d
进行 Composer 命令安装操作
composer require elasticsearch/elasticsearch
进行use一下
use Elasticsearch\ClientBuilder;
可以在config中封装一个es.php的文件
<?php
return [
'host'=>['127.0.0.1:9200']
];
ES索引的创建(可以略过,添加的时候会自动创建)
//链接es
$client = ClientBuilder::create()->setHosts(config('es.host'))->build();
$params = [
//索引名称
'index'=>'news',
'body'=>[
'settings'=>[
//分片操作
'number_of_shards'=>5,
'number_of_replicas'=>1
],
'mappings'=>[
'_doc'=>[
'_source'=>[
'enabled'=>true,
],
'properties'=>[
'fang_name'=>[
'type'=>'keyword'
],
//es搜索操作
'fang_desn'=>[
'type'=>'text',
'analyzer'=>'ik_max_word',
'search_analyzer'=>'ik_max_word'
]
]
]
]
]
];
$response = $client->indices()->create($params);
ES添加入库操作
//链接es
// ID 与 body内容不固定,可以自行更改
$client = ClientBuilder::create()->setHosts(config('es.host'))->build();
$params = [
//索引名称
'index'=>'news',
//索引类型
'type'=>'_doc',
//id字段
'id'=>$id['0']['id'],
//需要添加内容
'body'=>[
'id' => 1,
'title'=>$data['title'],
'text'=>$data['text'],
'date'=>$data['date'],
'image'=>$data['image'],
]
];
//返回值
$client->index($params);
ES搜索功能(可进行高亮显示)
// 搜索内容值
$seach = $data['seach'];
// 链接es操作
$client = ClientBuilder::create()->setHosts(config('es.host'))->build();
// 进行ES的搜索操作
$params = [
//数据库名 更换成你自己所创建的索引
'index' => 'news',
'type' => '_doc',
'body' => [
'query' => [
'match' => [
//要搜索的字段 替换成你自己所要查询额标签
'title' => $seach//要搜索的内容
]
],
//高亮显示操作
'highlight' => [
'fields'=>[
'title'=>[
//修改类型操作
'pre_tags'=>[
'<span style="color: red">'
],
'post_tags'=>[
'</span>'
]
]
]
]
],
];
// 返回值
$res = $client->search($params);
// 将返回值进行处理操作
$datas = $res['hits']['hits'];
// 进行循环处理操作
foreach ($datas as $k => $v)
{
$datas[$k]['_source']['title'] = $v['highlight']['title'][0];
}
// 再次循环处理操作
foreach ($datas as $val)
{
$data[] = $val['_source'];
}
// 将处理好的data值进行返回操作
return success($data);
微信小程序记得写样式,引入富文本
<rich-text nodes="{{ itemp['titel'] }}">{{ itemp['titel'] }}</rich-text>