版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zch3210/article/details/89311482
1,在Ik分词的config文件IKAnalyzer.cfg.xml下 添加远程分词的目录,如我这里放在本地的Apache服务器下
2.给远程文件添加分词
//添加分词(远程不需要重启)
public function addCi()
{
$ci = '苏大强';
file_put_contents("C:/xampp/htdocs/phpproject/tp5es/test.dic", $ci.PHP_EOL, FILE_APPEND);
}
3. 添加的分词只对以后再添加的数据有效,对于历史数据并不会用新加入的分词再次进行分词,所以es提供了一个接口,
http://127.0.0.1:9200/index*/_update_by_query?conflicts=proceed
// 添加分词后让历史数据生效
public function history()
{
//初始化
$curl = curl_init();
//设置抓取的url
curl_setopt($curl, CURLOPT_URL, 'http://127.0.0.1:9200/ceshitime/_update_by_query?conflicts=proceed');
//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, 1);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//设置post方式提交
curl_setopt($curl, CURLOPT_POST, 1);
//设置post数据
$post_data = array(
);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
//执行命令
$data = curl_exec($curl);
//关闭URL请求
curl_close($curl);
//显示获得的数据
print_r($data);
}
4. 精确搜索“苏大强”看是否能搜索到
'term' => [ 'content' => '苏大强' ]