安装sphinx和coreseek

sphinx简介

Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎。意图为其他应用提供高速、低空间占用、高结果 相关度的全文搜索功能。Sphinx可以非常容易的与SQL数据库和脚本语言集成。当前系统内置MySQL和PostgreSQL 数据库数据源的支持,也支持从标准输入读取特定格式 的XML数据。

Sphinx的特性如下:

a)  高速的建立索引(在当代CPU上,峰值性能可达到10 MB/秒);

b)  高性能的搜索(在2 – 4GB 的文本数据上,平均每次检索响应时间小于0.1秒);

c)  可处理海量数据(目前已知可以处理超过100 GB的文本数据, 在单一CPU的系统上可 处理100 M 文档);

d)  提供了优秀的相关度算法,基于短语相似度和统计(BM25)的复合Ranking方法;

e)  支持分布式搜索;

f)  支持短语搜索

g)  提供文档摘要生成

h)  可作为MySQL的存储引擎提供搜索服务;

i)  支持布尔、短语、词语相似度等多种检索模式;

j)  文档支持多个全文检索字段(最大不超过32个);

k)  文档支持多个额外的属性信息(例如:分组信息,时间戳等);

l)  支持断词;

虽然mysql的MYISAM提供全文索引,但是性能却不敢让人恭维,另外数据库毕竟不是很善于做这样的事情,我们需要把这些活让给更适合的程序去做,减少数据库的压力。因此采用Sphinx来做mysql的全文索引工具是一个很好的选择。

Sphinx安装

wget http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz

tar xzvf sphinx-0.9.9.tar.gz

cd sphinx-0.9.9

./configure --prefix=/usr/local/sphinx/   --with-mysql  --enable-id64

make

make install

Sphinx配置

sphinx配置文件在安装目录的etc下 例如安装目录在/usr/local/sphinx

那么默认的配置文件就在/usr/local/sphinx/etc/sphinx.conf

使用 cp ./sphinx.conf.dist  sphinx.conf 创建配置文件

sphinx配置文件的结构

Source 源名称1{
#添加数据源,这里会设置一些连接数据库的参数比如数据库的IP、用户名、密码等
#设置sql_query、设置sql_query_pre、设置sql_query_range等后面会结合例子做详细介绍

    #定义数据库类型

    type                 = mysql

           #定义数据库的IP或者计算机名

    sql_host             = localhost

           #定义连接数据库的帐号

    sql_user             = root

           #定义链接数据库的密码

    sql_pass             = test123

           #定义数据库名称

    sql_db               = test

           #定义连接数据库后取数据之前执行的SQL语句

    sql_query_pre        = SET NAMES utf8

    sql_query_pre        = SET SESSION query_cache_type=OFF

  #定义取数据的SQL,第一列ID列必须为唯一的正整数值

  sql_query            = select content from post where id=$id

}

Index 索引名称1{

     Source=源名称1

  #设置全文索引

}

Indexer{
      #定义生成索引过程使用索引的限制
     mem_limit        = 512M

}

Searchd{  

#设置Searchd守护进程本身的一些参数

}

Coreseek介绍

Coreseek是现在用的最多的sphinx中文全文检索,它提供了为Sphinx设计的中文分词包LibMMSeg ,是基于sphinx的基础上开发的。

安装mmseg

tar xzvf coreseek-3.2.14.tar.gz

cd cd mmseg-3.2.14

./bootstrap    #输出的warning信息可以忽略,如果出现error则需要解决

./configure --prefix=/usr/local/mmseg

make && make install

安装coreseek

cd csft-3.2.14

./configure --prefix=/usr/local/coreseek  \--with-mmseg \--with-mmseg-includes=/usr/local/mmseg/include/mmseg/ \--with-mmseg-libs=/usr/local/mmseg/lib/ --with-mysql=/usr/local/mysql

make && make install

配置coreseek

配置coreseek和配置sphinx类似

#以下部分为中文分词核心配置

 #stopwords        = /path/to/stowords.txt的位置
    charset_dictpath        = /usr/local/mmseg3/etc/
    charset_type        = zh_cn.utf-8
    #charset_table                    = .................... #需将原有的该配置注释掉
    ngram_len                    = 0

#以上部分为中文分词核心配置

配置介绍

中文分词核心配置说明:
charset_dictpath=/usr/local/mmseg3/etc/
必须设置,表示词典文件的目录,该目录下必须有uni.lib词典文件存在;
uni.lib词典文件的制作,请参考:mmseg词典的构造;特别注意,更换或者修改词典后,需要重新索引数据并重启searchd才能生效。
因为BSD/linux默认安装在/usr/local/mmseg3/etc下面,则使用/usr/local/mmseg3/etc/即可;
如果是在Windows系统下,则为词典所在的实际路径,结尾必须使用/,例如:F:\coreseek-3.2.13-win32\etc/

测试时,如果出现Unigram dictionary load Error或者Segmentation fault,一般为词典路径设置不正确。

charset_type=zh_cn.utf-8

必须设置,表示启用中文分词功能;否则中文分词功能无效,使用sphinx的其他处理模式。

启用中文分词功能后,需要source数据源之中,读取的数据编码字符集为UTF-8,否则无法正确处理;

如果是xml,则正确输出为UTF-8编码格式即可;

如果是MySQL,则设置读取数据输出字符集为UTF-8即可:

MySQL4.1起可以通过SET NAMES UTF8设定输出字符集为UTF-8,即使原始数据为GBK也可;

MySQL4.1以下版本,请直接联系我们解决GBK或者Latin1输出为UTF-8问题;

#stopwords=/path/to/stowords.txt的位置

可选设置,表示停止词文件,该文件中的词汇(也可以为单字)不参与搜索;文件格式为普通UTF-8文本文件,每行一个;
#charset_table=......
ngram_len=0
必须设置,表示取消原有的一元字符切分模式,不使其对中文分词产生干扰;
charset_table的配置需要注释掉!

ngram_len的配置需要设置为0!

时间: 2024-10-21 04:17:03

安装sphinx和coreseek的相关文章

安装sphinx的心得和错误处理

sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索.可以加快数据库的查询.下面简单介绍下在php环境下安装sphinx的步骤. 首先得下载sphinx的安装文件,这个在官网就可以下载到.解压缩,找到etc目录,里面的csft_mysql.conf,复制到sphinx根目录下,改成自己的名字(任意),打开 内容如下: #MySQL数据源配置,详情请查看:http://www.coreseek.cn/products-install/mysql/ #请先将

sphinx与coreseek

Sphinx 1 下载sphinx  http://sphinxsearch.com/ 2 编译安装 tar -zxvf sphinx.tar.gz ./configure --prefix=/usr/local/sphinx --with-mysql=/usr/local/mysql make && make install Sphinx中重要的三个命令,(Sphinx安装的bin目录下) Indexer 创建索引命令.Searchd 启动进程命令.Search 命令行搜索命令. 3 准

centos68安装sphinx(php)

1.安装前请先确定安装了常用的组件 yum install -y python Python-devel 2.安装sphinx tar zxvf sphinx-2.2.10-release.tar.gzcd sphinx-2.2.10-release./configure --prefix=/usr/local/sphinx –-with-MySQLmake && make install 在make时如果出现undefined reference to libiconv的错 错误描述 /

centos 安装sphinx

官网下载 :http://sphinxsearch.com/downloads/sphinx-2.2.10-release.tar.gz/thankyou.html 安装sphinx 解压 tar zxvf sphinx-2.1.4-release.tar.gz cd sphinx-2.1.4-release ./configure --prefix=/usr/local/sphinx --with-mysql-includes=/usr/local/mysql/include/mysql/ -

CentOS6.4 64位下安装sphinx及sphinx for php扩展

在官方网站下载最新的sphinx,最近数据库要被搜索给玩死了,想想还是加个索引吧.这儿分享一下sphinx的安装及php扩展sphinx.so的安装方法,可能网上有很多相似的教程. 安装前请确定你安装了一些常用的东东,比如gcc mysql-devel之类的!当然,不装它也会提示你一些错误的,看着来吧!下面进入正题 //这句话信息量很大的,下面是需要安装的常用扩展 sphinx官网:http://sphinxsearch.com/downloads/release/ 请使用稳定版,线上机器就别玩

sphinx使用小记之ubuntu下安装sphinx

sphinx是一个基于SQL的全文检索引擎,当查询百万级以上的大数据时运用会显著的提高查询的速度. 在ubuntu环境下安装sphinx需要根据该环境下的php环境配置合适的版本,ubuntu的apt-get可以自动选择当前最新的版本下载,因此在版本上应该不会有不兼容的情况. 1.安装sphinx sudo apt-get install sphinxseach 2.配置sphinx.conf文件   cp /etc/sphinxearch/sphinx.conf.simple /etc/sph

php 上面安装sphinx

install sphinx 推荐安装sphinx 2.0.7-release http://sphinxsearch.comwget http://sphinxsearch.com/files/sphinx-2.0.8-release.tar.gz tar zxvf sphinx-2.0.8-release.tar.gz cd sphinx-2.0.8-release ./configure --prefix=/usr/local/webserver/sphinx --with-mysql=

Sphinx以及coreseek的安装及使用

检索结构 php -> sphinx -> mysql 非结构化数据又叫全文数据,非固定长度字段例如文章标题搜索这类适用sphinx 全文数据搜索: 1 顺序扫描 : 如like查找 2 索引扫描 : 把非结构化数据中的内容提取出来一部分重新组织,这部分数据就叫做索引 全文检索分为两个过程 1.创建索引 2.搜索索引 创建索引: sphinx通过语言处理组件会把搜索语句中的标点符号,语气助词给过滤掉,然后处理完毕后会 分析出一些词语,传给索引组件,然后排序去除重复词语. 搜索索引: 搜索关键字

Sphinx 之 Coreseek、Sphinx-for-chinaese、Sphinx+Scws 评测

Sphinx是一个基于SQL的全文检索引擎:普遍使用于很多网站:但由于中英文的差异,其本身,对中文的支持并不好.主要体现在对一段话断词:英文只需按照空格对其分词即可:但对于博大精深的中文来说,却是件困难的事情. 分词在两个地方会用到:1.索引时,根据分词索引原始数据2.搜索时,对用户输入分词,到索引中查询 本文提供了三种目前最常用的方案Coreseek.Sphinx-for-chinaese.Sphinx+Scws,并对其简单对比:在合适的场景,选择合适的方案,得出最优的解. 评测:一.Core