RDS+opensearch 实现帝国CMS的全文搜索

基于rds+帝国CMS的想使用opensearch,实现全文内容搜索,虽然功能比较简单(比自带的效果好),但是后续功能会慢慢强大的。

那怎么样来创建基于opensearch的搜索?下面会告诉你操作方法。

环境配置:

1、使用的阿里的rds,并且rds实例在杭州(开放搜索支持的区域)
2、开通了opensearch的服务。

3、帝国CMS的版本号7.2(理论上是没有限制的)

第一步:创建开放搜索应用

1、在开放搜索中创建一个模板,例如名称叫ECMS

op01

2、自定义结构(下载应用结构模板可跳过以下2-8步,这里直接选择导入模板ECMS.txt即可,压缩包在文章末尾)

op02

3、添加数据表名和类型

注意这里要创建两个表,第一个表名为main,第二个表名为body。id的字段类型为INT。其他为text。

main表中的id “连接外表主键”到body表

op03

4、给body表的newstext(内容全文字段)使用内容转换插件“HTMLTagRemover | newstext”

op04

 

5、点继续,这样一个简单的帝国CMS全文搜索OpenSearch索引结构就完成了

6、配置字段搜索属性,可直接下一步

op05

7、确认明细,可直接下一步,点创建

8、创建应用

op06

9、找到结构类型模板ECMS

op07

下一步。

10、配置数据源

op08

11、连接数据

op09

 

12、如果帝国CMS数据表里的字段没有修改过都能匹配上,点保存。

op10

13、同样的办法连接body表,新闻正文内容存放表对应表名是phome_ecms_news_data_1,下一步

op11

 

14、创建,这个时候这个应用就创建成功了。然后激活应用。

op12

15、应用激活之后,开始重建索引,选择导入+重建,然后勾选main表和body表,点击创建。

op13

op14

 

16、搜索结果相关性配置

op15

17、搜索结果摘要飘红字段配置

op16

第二步、配置opensearch搜索

下载opensearch的压缩包,配置同级目录下的config/config.php文件

解压后修改完成后,可直接按照目录结构传到网站根目录

ECMS.txt 为应用结构模板

s.php 为接受搜索请求文件

————
在线演示地址 :http://js.lyecsp.com/golf/index.html

index.html和index.php为演示文件

so.php 为修改过的s.php页面

————

下载文件:

ECMS opensearch

PS:根据这个方法,可以举一反三,往opensearch中添加各种可搜索的数据,利用好主表和附表,各种程序数据都可融合,然后做搜索。

帝国ECMS+Ucenter接口整合“No database selected select * from ***_enewsmember where userid”问题解决

打算给“洛阳生活网(LuoyangLife.com)”添加个频道。。装上了帝国CMS系统。。整合原有的UCenter用户系统。。

按照官方的“《帝国网站管理系统》Ucenter接口整合说明”整合完成后,登录和注册都出现问题。。
其中共同的提示是:

No database selected
select * from ***_enewsmember where userid

帝国系统为全新安装(ecms6.5),UCenter为独立安装并且使用独立数据库(和帝国系统不在同一服务器)版本1.5。

发现“安装”Ucenter这个接口后默认的系统文件已经被替换了,,不过现在偶已经备份勒。。

考虑到“共用”数据库用户与数据库可以“正常整合”使用。

于是把UCenter的配置文件中的数据库连接方式修改为使用“ fscoketopen()”,问题解决!
也就是第一段配置修改为:

define(‘UC_CONNECT’, ”); // 连接 UCenter 的方式: mysql/NULL, 默认为空时为 fscoketopen()
// mysql 是直接连接的数据库, 为了效率, 建议采用 mysql

不使用mysql方式连接即可。。

这样配置之后就可以正常登录和注册了。。

若想为了效率坚持使用mysql,偶还没去研究呢。。

接下来开始设置模版。。