设为首页 收藏本站
查看: 541|回复: 0

[经验分享] 在centos5下为PHP安装coreseek全文检索引擎支持

[复制链接]

尚未签到

发表于 2017-4-13 10:27:56 | 显示全部楼层 |阅读模式
coreseek是在Sphinx基础上开发的全文检索软件,具体介绍详见文尾附录

=========================================================

一、        安装环境及介绍
1.       前提环境
系统环境:centos5

操作用户:root

文中粗体字为需用户输入的命令内容

 

2.        源码包准备
下载MMSEG分词源码包 

wget http://www.coreseek.cn/uploads/sources/mmseg3_0b3.tar.gz

下载coreseek源码包 

wget http://www.coreseek.cn/uploads/sources/csft3_0b4.tar.gz  

解压缩源码包  

tar -xzvf  mmseg3_0b3.tar.gz

tar -xzvf  csft3_0b4.tar.gz

 

 

3.       安装环境准备
安装g++编译环境

yum  install g++

yum  install gcc

yum install  make

 

安装python开发组件

yum  install python

yum  install python-dev

 

 

 

安装make

yum  install make

 

4.       编译mmseg
cd  mmseg.3.0b3/

./configure  --prefix=/var/eyou/mmseg

make

make  install

 

5.       编译coreseek
cd  csft3_0b4/

./configure  --prefix=/var/eyou/coreseek  --with-python --with-mysql --with-mmseg-includes=/var/eyou/mmseg/include/mmseg  --with-mmseg-libs=/var/eyou/mmseg/lib/

make & make  install

 

 

此步安装完成后,将在/var/eyou/下生成  coreseek 目录

coreseek目录中有三个目录分别为bin、  etc 、var
bin中 存有sphinx用到的一些执行文件 包括  indexer索引建立 search 查询工具 searchd  查询服务器 等
etc中是配置文件,该目录中有一个sphinx.conf.disk,这个相当于sphinx的配置例子文件,我们以这个文件为蓝本,重新创建一个空白内容的sphinx.conf,存放在etc

 
 

6.       创建dict目录
  创建字典目录:
  mkdir /var/eyou/coreseek/dict/
产生字典步骤:
cd /root/soft/  mmseg.3.0b3/data
  /var/eyou/mmseg/bin/mmseg-u  unigram.txt
产生了unigram.txt.uni,移到相应目录。
  cp  unigram.txt.uni /var/eyou/coreseek/dict/uni.lib
创建 /var/eyou/coreseek/dict/mmseg.ini
内容:
[mmseg]
merge_number_and_ascii=1;
number_and_ascii_joint=-;
compress_space=0;
seperate_number_ascii=1;
#merge_number_and_ascii:字母和数字连续出现是非切分
#number_and_ascii_joint:连接数字和字母可用的符号,如'-' '.' 等
#compress_space:暂时无效
#seperate_number_ascii:是否拆分数字,如 1988 -> 1/x 9/x 8/x 8/x  
 

7.        php调用sphinx api
 

 通过官方API调用Sphinx,具体为:

coreseek安装目录有一个API目录,里面有三个PHP文件:test.php,test2.php和sphinxapi.php。sphinxapi.php是sphinx调用接口封装文件(这个文件就是官方提供的php调用API),test.php是一个在命令行下执行的查询例子文件,test2.php是一个生成摘要的 例子文件。

 

8.        配置sphinx.conf
    具体参见sphinx.conf  的注释说明

9.        启动服务
 

建立索引

  /var/eyou/coreseek/bin/indexer --config  /var/eyou/coreseek/etc/sphinx.conf
启动 searchd  服务

  /var/eyou/coreseek/bin/searchd--config /var/eyou/coreseek/etc/sphinx.conf
 

 

 

二、        附录:全文检索----coreseek
 

 

1.    全文搜索与数据库搜索的区别  
o           专为全文搜索优化,效率更高  
由于典型的数据库系统要考虑用户的“增删改查”等多种复杂操作,因此其存取数据的方式需要考察综合考虑各种应用;而全文搜索的数据存取方式只考虑快速读取,相比数据库的查询,要快10倍或更多。(即使启用了数据库内置的全文搜索功能,这个结论仍成立)。

o           支持复杂的查询表达式
数据库系统的查询,往往只支持“AND” 或 "OR"  等有限的模式,而全文检索不但支持"AND"、“OR” 查询,还支持“NOT”、“近似”、“整句”等多种查询方式;同时相比数据库系统,进行在一定范围内查询时也更高效

o           支持按相关度排序
数据库查询出的结果,往往按照数据库内置的排序规则进行排序,往往只能按时间、按点击等有效的排序规则进行;全文搜索除了能够支持数据库的排序规则外,还支持按照结果的相关度排序,这往往会给访问者带来更大的便利。

o           支持中文分词
数据库提供的全文搜索功能往往不支持中文分词(或仅提供二元切分),导致某些短语检索不到或出现大量不相干的数据;中文全文检索系统支持中文分词,进一步过滤了不相干的数据。

2.    自建全文搜索与使用Google等第三方网站提供的站内全文搜索的区别
o           对网站设备有要求
自建全文搜索往往需要站长有至少一台独立主机,而使用第三方提供的全文搜索对站点的要求低,虚拟主机即可;不过,出现全文搜索需求的站点通常已经有自己的独立主机了。

o           索引更新更及时
由于搜索服务在第三方托管,其往往只能按照一定的规则定期更新索引库(往往是几小时、甚至几天才更新一次索引),您网站上的新出现的内容往往不能及时被搜索到;
使用自建全文搜索,可以保证您网站上新出现的内容可以”立即“被检索到。  

o           更适应您的网站
由于中文需要进行分词的特性,导致没有一套通用的词库可以适用于全部网站,要得到优秀的检索结果需要定制一套适用于您网站的词库;
采用第三方的搜索服务,您是无法修改第三方厂商的词库的,而使用自建全文搜索则无此问题。

o           更有利于您网站的数据整合
有些网站不止是论坛,往往还包括内容管理(CMS)、商城等多种应用,而使用数据库搜索往往需要用户在各个系统中都进行搜索才能找到内容;
第三方的检索无法区别各个系统的不同。而自建的全文搜索可以有效的区分各个数据来源的不同数据,真正做到一次搜索应有尽有,从而改善您网站的访问体验,增加您网站的点击率。

o           避免您的访问者遇到某些尴尬  
第三方的搜索结果页面不是您可以控制修改的,有推荐一些可能会使您网站访问者尴尬的搜索短语的可能。而使用自建全文搜索则完全无此问题。

 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-364317-1-1.html 上篇帖子: 教你如何利用php来嗅探劫持服务器数据 下篇帖子: Discuz!源代码分析系列(1)-./include/common.inc.php (续)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表