帝国CMS8.0基于es(Elasticsearch)的全文搜索插件安装教程

无所事事2025-02-21CMS插件61

一、插件安装说明

  1. 解压后将/e/extend/zyl_elasticsearch_single文件夹放到/e/extend/目录,完整路径是/e/extend/zyl_elasticsearch_single/

  2. 浏览器打开/e/extend/zyl_elasticsearch_single/install/index.php进行安装。

  3. 切记切记,安装完成后一定要删除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全文搜索 单库索引版 代码结束 */


发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。