关闭记忆后台操作界面
配置好索引名称,索引服务器等参数,在下面勾选需要索引的字段、索引类型以及选择分词器。一般中文数据选text,分词器选ik_max_word即可。
在这里你可以查看和删除已经索引的数据,查看标题的分词效果,如果对分词不满意,可以使用自定义分词
到这里你已经可以使用前台页面【你的域名/index.php?s=zyl_elasticsearch&c=home&m=index】进行愉快的搜索了。
点击自定义词库分类,进入自定义词库分类管理
分类列表
添加分类
点击进入自定义词库管理
自定义分词列表
添加自定义分词
1、打开elasticsearch/plugins/ik/config/IKAnalyzer.cfg文件,修改remote_ext_dict的值为【你的网址】/dict/fenci.dic,如图所示
2、重启elasticsearch服务端
到这里自定义词库设置完成,之前已经索引的数据是不会按新词库分词的,这里就需要【删除索引】删除之前的旧数据,然后重新【创建索引】->【导入数据】
把下面的钩子代码添加到系统config/hooks.php文件
//模块内容发布之后 \Phpcmf\Hooks::on('module_content_after', function ($data, $old) { try { $postdata = array_merge($data[1], $data[0]); $postdata['dirname'] = APP_DIR; // 内容发布或者修改之后 if ($data[1]['status'] == 9) { // 9表示审核通过的 \Phpcmf\Service::L('zylElasticsearch', 'Zyl_elasticsearch')->document_update($postdata); } else { // 其他状态 删除索引文档 \Phpcmf\Service::L('zylElasticsearch', 'Zyl_elasticsearch')->document_delete($postdata); } } catch (Throwable $e) { } }); //模块内容审核处理之后 \Phpcmf\Hooks::on('module_verify_after', function ($data) { //$data 模块审核表的数据 // MOD_DIR 表示模块目录 try { $data['dirname'] = MOD_DIR; if ($data['status'] == 9) { // 9表示已经通过了,这里记录一下是谁审核通过的 \Phpcmf\Service::L('zylElasticsearch', 'Zyl_elasticsearch')->document_update($data); } else { // 其他状态 删除索引文档 \Phpcmf\Service::L('zylElasticsearch', 'Zyl_elasticsearch')->document_delete($data); } } catch (Throwable $e) { } }); //模块内容删除/回收站之后 //用于后台加入回收站之后、用户中心删除内容之后的操作 \Phpcmf\Hooks::on('module_content_recycle', function ($data) { //$data 模块表的数据 // MOD_DIR 表示模块目录 try { $data['dirname'] = MOD_DIR; //删除索引文档 \Phpcmf\Service::L('zylElasticsearch', 'Zyl_elasticsearch')->document_delete($data); } catch (Throwable $e) { } }); //用于后台从回收站中删除之后的操作(彻底删除) \Phpcmf\Hooks::on('module_content_delete', function ($data) { //$data 模块表的数据 // MOD_DIR 表示模块目录 //有可能前面到回收站的时候已经删除了,所以这里做容错处理 try { $data['dirname'] = MOD_DIR; //删除索引文档 \Phpcmf\Service::L('zylElasticsearch', 'Zyl_elasticsearch')->document_delete($data); } catch (\Throwable $e) { } });
到此,我们插件已经能正常工作了。