帝国CMS8.0基于es(Elasticsearch)的全文搜索插件安装教程
一、插件安装说明
解压后将/e/extend/zyl_elasticsearch_single文件夹放到/e/extend/目录,完整路径是/e/extend/zyl_elasticsearch_single/
浏览器打开/e/extend/zyl_elasticsearch_single/install/index.php进行安装。
切记切记,安装完成后一定要删除install目录。
插件修改文件说明
需修改文件/e/class/hinfofun.php
如果没有修改过该文件,可以直接用修改好的文件替换
二、修改文件/e/class/hinfofun.php
1. 查找
insert_dolog("classid=".$add['classid']."<br>id=".$id."<br>title=".$add['title'],$pubid);//操作日志
大概在406行,在下面添加如下代码
/** elasticsearch全文搜索 单库索引版 代码开始 */ if ($add['checked'] == 1) { require_once(ECMS_PATH . 'e/extend/zyl_elasticsearch_single/include/common.php'); $zyl_essobj = new zylElasticsearchSingle(); $add['id'] = $id; $add['newstime'] = $newstime; $zyl_essobj->document_index($add); } /** elasticsearch全文搜索 单库索引版 代码结束 */
2. 查找
printerror("EditNewsSuccess",$ecmsfrom.$addecmscheck);
大概在678行,在上面添加如下代码
/** elasticsearch全文搜索 单库索引版 代码开始 */ require_once(ECMS_PATH . 'e/extend/zyl_elasticsearch_single/include/common.php'); $zyl_essobj = new zylElasticsearchSingle(); if ($add['checked'] == 1) { $add['newstime'] = strtotime($add['newstime']); $zyl_essobj->document_update($add); } else { //审核不通过,删除所有索引文档 $zyl_essobj->document_delete($add); } /** elasticsearch全文搜索 单库索引版 代码结束 */
3. 查找
printerror("EditNewsSuccess",$closeurl,8);
大概在953行,在上面添加如下代码
/** elasticsearch全文搜索 单库索引版 代码开始 */ require_once(ECMS_PATH . 'e/extend/zyl_elasticsearch_single/include/common.php'); $zyl_essobj = new zylElasticsearchSingle(); if ($add['checked'] == 1) { $add['newstime'] = strtotime($add['newstime']); $zyl_essobj->document_update($add); } else { //审核不通过,删除所有索引文档 $zyl_essobj->document_delete($add); } /** elasticsearch全文搜索 单库索引版 代码结束 */
4. 查找
insert_dolog("classid=$classid<br>id=".$id."<br>title=".$r['title'],$pubid);//操作日志
大概在1086行,在下面添加如下代码
/** elasticsearch全文搜索 单库索引版 代码开始 */ require_once(ECMS_PATH . 'e/extend/zyl_elasticsearch_single/include/common.php'); $zyl_essobj = new zylElasticsearchSingle(); $zyl_essobj->document_delete(['id' => $id, 'classid' => $classid]); /** elasticsearch全文搜索 单库索引版 代码结束 */
5. 查找
$r=$empire->fetch1("select * from {$dbtbpre}ecms_".$tbname.$doctb." where id='".$id[$i]."'");
大概在1134行,在下面添加如下代码
/** elasticsearch全文搜索 单库索引版 代码开始 */ $delArr[$i] = [ 'id' => (int)$id[$i], 'classid' => (int)$r['classid'], ]; /** elasticsearch全文搜索 单库索引版 代码结束 */
6. 查找
printerror("DelNewsAllSuccess",EcmsGetReturnUrl());
大概在1235行,在上面添加如下代码
/** elasticsearch全文搜索 单库索引版 代码开始 */ if (count($delArr)) { require_once(ECMS_PATH . 'e/extend/zyl_elasticsearch_single/include/common.php'); $zyl_essobj = new zylElasticsearchSingle(); foreach ($delArr as $del) { $zyl_essobj->document_delete($del); } } /** elasticsearch全文搜索 单库索引版 代码结束 */
7. 查找
GetHtml($infor['classid'],$infor['id'],$infor,1);
大概在1973行,在下面添加如下代码
/** elasticsearch全文搜索 单库索引版 代码开始 */ $doclist[] = $empire->fetch1("SELECT * FROM {$dbtbpre}ecms_{$class_r[$classid]['tbname']} WHERE id='{$infoid}' LIMIT 1"); /** elasticsearch全文搜索 单库索引版 代码结束 */
8. 查找
printerror("CheckNewsSuccess",$returl);
大概在2015行,在上面添加如下代码
/** elasticsearch全文搜索 单库索引版 代码开始 */ /* 这段代码是把审核通过列表添加到全部索引里面,可选代码,不需要可以不修改 */ if (count($doclist)) { require_once(ECMS_PATH . 'e/extend/zyl_elasticsearch_single/include/common.php'); $zyl_essobj = new zylElasticsearchSingle(); $zyl_essobj->document_insertAll($doclist, 1); } /** elasticsearch全文搜索 单库索引版 代码结束 */
9. 查找
AddClassInfos($r['classid'],'','-1');
大概在2063行,在下面添加如下代码
/** elasticsearch全文搜索 单库索引版 代码开始 */ $delArr[$i] = [ 'id' => (int)$id[$i], 'classid' => (int)$r['classid'], ]; /** elasticsearch全文搜索 单库索引版 代码结束 */
10. 查找
printerror("NoCheckNewsSuccess",$returl);
大概在2119行,在上面添加如下代码
/** elasticsearch全文搜索 单库索引版 代码开始 */ if (count($delArr)) { require_once(ECMS_PATH . 'e/extend/zyl_elasticsearch_single/include/common.php'); $zyl_essobj = new zylElasticsearchSingle(); foreach ($delArr as $del) { $zyl_essobj->document_delete($del); } } /** elasticsearch全文搜索 单库索引版 代码结束 */
11. 查找
MoveCheckInfoData($class_r[$classid]['tbname'],0,$r['stb'],"id='".$r['id']."'");
大概在2645行,在上面添加如下代码
/** elasticsearch全文搜索 单库索引版 代码开始 */ $doclist[] = $empire->fetch1("SELECT * FROM {$dbtbpre}ecms_{$class_r[$classid]['tbname']} WHERE id='{$r['id']}' LIMIT 1"); /** elasticsearch全文搜索 单库索引版 代码结束 */
12. 查找
printerror("CheckNewsSuccess",EcmsGetReturnUrl());
大概在2590行,在上面添加如下代码
/** elasticsearch全文搜索 单库索引版 代码开始 */ /* 这段代码是把审核通过列表添加到全部索引里面,可选代码,不需要可以不修改 */ if (count($doclist)) { require_once(ECMS_PATH . 'e/extend/zyl_elasticsearch_single/include/common.php'); $zyl_essobj = new zylElasticsearchSingle(); $zyl_essobj->document_insertAll($doclist, 1); } /** elasticsearch全文搜索 单库索引版 代码结束 */