文档章节

在centos5下为PHP安装coreseek全文检索引擎支持

ThinkGem
 ThinkGem
发布于 2016/07/17 16:15
字数 1576
阅读 45
收藏 0

<script type="text/javascript">document.domain = &quot;iteye.com&quot;;</script>

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.phptest2.phpsphinxapi.php sphinxapi.phpsphinx 调用接口封装文件(这个文件就是官方提供的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          避免您的访问者遇到某些尴尬
第三方的搜索结果页面不是您可以控制修改的,有推荐一些可能会使您网站访问者尴尬的搜索短语的可能。而使用自建全文搜索则完全无此问题。

 

本文转载自:http://thinkgem.iteye.com/blog/727023

共有 人打赏支持
ThinkGem

ThinkGem

粉丝 1105
博文 138
码字总数 24109
作品 2
济南
架构师
私信 提问
使用PHP+Sphinx建立高效的站内搜索引擎

1. 为什么要使用Sphinx 假设你现在运营着一个论坛,论坛数据已经超过100W,很多用户都反映论坛搜索的速度非常慢,那么这时你就可以考虑使用Sphinx了(当然其他的全文检索程序或方法也行)。 ...

晨曦之光
2012/03/09
296
0
使用PHP+Sphinx建立高效的站内搜索引擎

本文摘自《草根》杂志第四期 1. 为什么要使用Sphinx 假设你现在运营着一个论坛,论坛数据已经超过100W,很多用户都反映论坛搜索的速度非常慢,那么这时你就可以考虑使用Sphinx了(当然其他的...

张沫
2010/10/15
23.7K
6
Coreseek Windows下安装调试

 由于项目需要全文检索,后面就去网上查了下资料,找到了Sphinx【中文是狮身人面像】这个全文检索引擎,听说挺好用的,不过没有中文分词。后面又去找了一下,找到了Coreseek,一款中文全文检...

技术小胖子
2017/11/10
0
0
[coreseek/sphinx学习笔记1]--简介

[参考Coreseek 全文检索服务器 2.0 (Sphinx 0.9.8)参考手册,详情见http://www.coreseek.cn/docs/sphinx_doc_zhcn_0.9.pdf] 1.1 什么是Sphinx Sphinx 是 SQL Phrase Index 的缩写,但不幸的和......

酒肉穿肠过
2013/02/21
0
0
开源中文检索软件CoreSeek之初体验

国人开发的CoreSeek实际是上基于Sphinx的定制版,使用mmseg进行中文分词并实现中文搜索。 官网提供了详细的安装说明和CentOS5的rpm安装包,由于笔者需要在CentOS 6 x8664上运行,得自行打包。...

kisops
2013/08/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 白掌柜说了卖货不卖身

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @爱漫爱 :这是一场修行分享羽肿的单曲《Moony》 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :开不开心? 开心呀, 我又不爱睡懒觉…...

小小编辑
今天
7
0
大数据教程(11.7)hadoop2.9.1平台上仓库工具hive1.2.2搭建

上一篇文章介绍了hive2.3.4的搭建,然而这个版本已经不能稳定的支持mapreduce程序。本篇博主将分享hive1.2.2工具搭建全过程。先说明:本节就直接在上一节的hadoop环境中搭建了! 一、下载apa...

em_aaron
今天
2
0
开始看《JSP&Servlet学习笔记》

1:WEB应用简介。其中1.2.1对Web容器的工作流程写得不错 2:编写Servlet。搞清楚了Java的Web目录结构,以及Web.xml的一些配置作用。特别是讲了@WebServlet标签 3:请求与响应。更细致的讲了从...

max佩恩
今天
4
0
mysql分区功能详细介绍,以及实例

一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可...

吴伟祥
今天
3
0
SQL语句查询

1.1 排序 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 格式: SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC; ASC 升序 (默认) DESC 降序 1.查询所有商品信息,...

stars永恒
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部