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中添加各种可搜索的数据,利用好主表和附表,各种程序数据都可融合,然后做搜索。

阿里云ECS:从Debian6(squeeze)升级到Debian7(Wheezy)

1、查看当前系统版本
root@clin003.com:~# cat /etc/issue
Debian GNU/Linux 6.0 \n \l

root@clin003.com:~# uname -a
Linux clin003.com 2.6.32-5-amd64 #1 SMP Sun Jan 1 04:57:38 CST 2012 x86_64 GNU/Linux
root@clin003.com:~#

2、修改更新源
root@clin003.com:~# nano /etc/apt/sources.list

#deb http://ftp.cn.debian.org/debian squeeze main
#deb-src http://ftp.cn.debian.org/debian squeeze main

#deb http://ftp.cn.debian.org/debian squeeze-updates main
#deb-src http://ftp.cn.debian.org/debian squeeze-updates main

#deb http://security.debian.org/ squeeze/updates main
#deb-src http://security.debian.org/ squeeze/updates main

# deb http://mirrors.aliyun.com/debian wheezy main
# deb http://mirrors.aliyuncs.com/debian wheezy main

deb http://mirrors.aliyun.com/debian wheezy main
deb http://mirrors.aliyuncs.com/debian wheezy main
deb-src http://mirrors.aliyun.com/debian wheezy main
deb-src http://mirrors.aliyuncs.com/debian wheezy main

deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main

# wheezy-updates, previously known as ‘volatile’
deb http://mirrors.aliyun.com/debian wheezy-updates main
deb http://mirrors.aliyuncs.com/debian wheezy-updates main
deb-src http://mirrors.aliyun.com/debian wheezy-updates main
deb-src http://mirrors.aliyuncs.com/debian wheezy-updates main

说明一下,“#”代表注释的意思,如果不想删除之前的源文件,可以像我这样只是注释掉之前的源地址,添加wheezy的源地址就可以了。

3、然后更新
root@clin003.com:~# apt-get update

root@clin003.com:~# apt-get -y upgrade

这中间有个等待的过程,会提示输入,按回车或空格然后按q即可。

debian6to7config

需要重启服务,我选择yes(不要再问我,该重启服务时就重启服务吧,所以建议选择在夜深人静的时候来升级)

phpmyadmin-config

由于我是用了rds,所以这里的配置phpmyadmin直接忽略掉了。
root@clin003.com:~# cat /etc/issue
Debian GNU/Linux 6.0 \n \l

root@clin003.com:~# uname -a
Linux clin003.com 2.6.32-5-amd64 #1 SMP Sun Jan 1 04:57:38 CST 2012 x86_64 GNU/Linux
root@clin003.com:~#

apt-get -y dist-upgrade

root@clin003.com:~# uname -a
Linux clin003.com 2.6.32-5-amd64 #1 SMP Sun Jan 1 04:57:38 CST 2012 x86_64 GNU/Linux
root@clin003.com:~# cat /etc/issue
Debian GNU/Linux 7 \n \l

root@clin003.com:~#

upgrade:系统将现有的Package升级,如果有相依性的问题,而此相依性需要安装其它新的
Package或影响到其它Package的相依性时,此Package就不会被升级,会保留下来.

dist-upgrade:可以聪明的解决相依性的问题,如果有相依性问题,需要安装/移除新的Package,
就会试着去安装/移除它.
(所以通常这个会被认为是有点风险的升级)

今天申请了阿里云的OCS内测

OCS是阿里云在线提供的开放缓存服务。基于KV(存储键/值)的高性能分布式内存缓存服务,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据来减少读取数据库的次数,从而提高数据库驱动网站的速度。其访问的客户端可以用多种语言编写,并通过Memcached协议与服务端无缝通信。

OCS特点
性能优越:采用内存 SSD的部署方案,通过内存为用户提供数据访问,响应时间大为缩短。
服务可靠:当某台服务器宕机时,集群将在10S内恢复服务,客户端自动重连即可恢复服务。
数据持久:用户所有KV键值都会分散到集群中保存2份数据,单一服务器损毁不会丢失数据。
兼容性 :兼容Memcached协议,符合该协议的客户端都可使用OCS。

OCS适用对象
适合的用户:ECS RDS 或 ECS内置数据库的用户

OCS适合的应用:
适合于动态Web网站的热点数据缓存
对数据访问速度要求较高
数据更新频率低、读取频率高
单个数据较小,建议在KB级别,最大 1MB
数据可以Key/Value的形式存储

申请地址:http://bbs.aliyun.com/read.php?spm=0.0.0.0.TiLcd7&tid=148748

关于PHP环境部署的可以参考下这里:http://dev.aliyun.com/read.php?spm=0.0.0.0.7nmlLf&tid=119

先研究下,,看看把wordpress扔上去

libmemcached-1.0.16

Blog搬入Linode VPS,已完成域名解析与数据转移!

之前使用photonvps接近一年的时间了,偶尔抽抽风,也没发现太大的问题,只是用了Dnspod的D监控后发现问题还是很多的说:
photonvps

之前受限于只能使用支付宝支付来购买国外主机,可以选择的“好”主机真不多。
昨天使用财付通的运通卡购入了Linode,从ping值来看的话比photonvps表现稍微稳定些(从Linode ping photonvps 显示都是各位数),数据打包好专业,重新使用 apt-get 安装apache+MySQL+PHP服务器环境配置apache静态支持.htaccess,从打包备份服务器文件恢复配置文件,还原数据库,一切都还算顺利。

继续观察下Linode再说。

顺便说一下,之前用PhotonVPS的 “WARP 1” 配置:MEMORY
512 MBDISK SPACE
35 GBTRAFFIC
4 TBPRICE
$16.95
使用长期优惠码的价格大概是13.多

现在使用Linode的最低配(我的第一感觉是他的硬盘容量有点小,不过现在还够用):
Linode
1GB
1 GB RAM
8 CPU (1x priority)
24 GB Storage
2 TB Transfer
$20 / month

可以使用df -h 命令查看硬盘真实使用空间(Linode控制面板里显示的是你的镜像文件用的空间,不得不说,Linode的控制面板真系比Photonvps强大太多)

linux查看磁盘分区占用空间
linux查看磁盘分区占用空间

我的Linode推介码
Referrals
Description Referrals reward you when you refer people to Linode. If someone signs up using your referral code, you’ll receive a credit of $20.00, so long as the person you referred remains an active customer for 90 days.
Your referral code(Linode推介码) a2ff48502acc8ce28470b8a38a1d6828069a829b
Your referral URL(Linode推介链接) http://www.linode.com/?r=a2ff48502acc8ce28470b8a38a1d6828069a829b

在线网站压力测试工具

可以模拟多个客户端同时访问站点,并分析出站点可同时支撑的访客数量。

网址:http://loadimpact.com/

loadimpact

通过图例可以看出在同时在线30人以下的时候网站都是比较稳定的。过了30这个数后就开始跳了。
loadimpact2

由于网站的配置不一样,所以支撑的同时在线访客数也是不一样的,这里是阿里云的空间1M带宽、512内存、1核的配置。在4分46秒的时候达到高峰之后可能被云盾拦截了,后面就没有连接了!!