使用elasticsearch实现全文检索
运行环境,解压es文件,开启终端到bin目录下,运行es环境
1.框架安装全文索引扩展
composer require elasticsearch/elasticsearch
2.框架安装高亮显示扩展
composer require nunomaduro/collision
创建索引
public function index()
{
$client = ClientBuilder::create()->setHosts(['127.0.0.1:9200'])->build();
$params = [
'index' => 'my_index',
'body' => [
'settings' => [
'number_of_shards' => 5,
'number_of_replicas' => 1
],
'mappings' => [
'properties' => [
'title' => [
'type' => 'text',
// 'analyzer' => 'ik_max_word',
// 'search_analyzer' => 'ik_max_word'
]
]
]
]
];
$response = $client->indices()->create($params);
}
添加数据
public function add()
{
$client = ClientBuilder::create()->setHosts(['127.0.0.1:9200'])->build();
$params = [
'index' => 'my_index',
// 'id' => 'my_id',
'body' => ['title' => '明天考试']
];
$response = $client->index($params);
print_r($response);
}
查询数据
public function search()
{
$client = ClientBuilder::create()->setHosts(['127.0.0.1:9200'])->build();
$params = [
'index' => 'my_index',
'body' => [
'query' => [
'multi_match' => [
'query' => '明',
'fields' => ['title']
]
],
'highlight' => [
'fields' => [
'*' => new Highlighter()
]
]
]
];
$response = $client->search($params);
print_r($response);
}