安装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!
安装sphinx和coreseek的更多相关文章
- sphinx和coreseek
sphinx是国外的一款搜索软件. coreseek是在sphinx的基础上,增加了中文分词功能,换句话说,就是支持了中文. Coreseek发布了3.2.14版本和4.1版本,其中的3.2.14版本 ...
- linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg)
linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg) 2013-11-10 16:51:14 分类: 系统运维 为什么要写这篇文章? 答:通过常规的三大步(./confi ...
- ubuntu上 安装 基于sphinx 的 coreseek 全文搜索
原生sphinx不支持中文, sphinx-for-chinese匹配中文时也不返回结果 ,真纠结, 最好试了 coreseek,这个能正确返回结果了, 所以记录一下 1 http://www.co ...
- sphinx中文版Coreseek中文检索引擎安装和使用方法(Linux)
sphinx中文版Coreseek中文检索引擎安装和使用方法(Linux) 众所周知,在MYSQL数据库中,如果你在百万级别数据库中使用 like 的话那你一定在那骂娘,coreseek是一个 ...
- 安装sphinx
安装Sphinx全文检索服务器 Sphinx默认不支持中文索引及检索, 以前用Coreseek的补丁来解决,目前Coreseek 不单独提供补丁文件,而基于sphinx开发了Coreseek 全文检索 ...
- linux 下安装 sphinx 服务器
准备工作:安装需要的扩展文件 yum install make gcc g++ gcc-c++ libtool autoconf automake imake libxml2-devel expat- ...
- Sphinx与coreseek
Sphinx : 高性能SQL全文检索引擎 分类 编程技术 Sphinx是一款基于SQL的高性能全文检索引擎,Sphinx的性能在众多全文检索引擎中也是数一数二的,利用Sphinx,我们可以完成比数据 ...
- 0622通过插件的方式来热安装sphinx
1.查看当前运行的mysql版本 mysqldump --version 我的Mysql版本5.5.32 2.下载对应的mysql 5.5.32 (版本号一定不能错,要不安装不成功)源码,并解压 下载 ...
- CentOS6.5 安装Sphinx 配置MySQL数据源
前提安装完mysql,并创建测试表和数据 DROP TABLE IF EXISTS `documents`; CREATE TABLE IF NOT EXISTS `documents` ( `i ...
随机推荐
- js发展历史
1992年Nombas开发和醋C-minus-minus(c--),的嵌入式脚本语言,最初是绑定在Cenvi软件中,后将其改名scriptEase(客户端执行的语言) Netscape 接受Nomba ...
- YII关联字段并带搜索排序功能
1.简介 从接触yii框架到现在已经快有两个月了,但是自己对yii框架的了解程度并不是很深,并没有系统地去学习,仅仅只是在做项目的时候遇到不懂得知识才去翻手册. 在上一个项目中因为需要将关联的表的字段 ...
- 使用facebook和twitter进行分享经验总结
凤凰涅槃,浴火重生. 在传说当中,凤凰是人世间幸福的使者,每五百年,它就要背负着积累于在人间的所有痛苦和恩怨情仇,投身于熊熊烈火中自焚,以生命和美丽的终结换取人世的祥和与幸福.同样在肉体经受了巨大的痛 ...
- vsftp 的安装及配置
安装vsftpd 直接用 yum安装,方便的很 yum -y install vsftpd #进入vsftpd目录cd /etc/vsftpd/ #Create The Virtual Users D ...
- null undefiend NaN
console.log(typeof NaN) console.log(typeof undefined) console.log(typeof null)
- BZOJ 4455: [Zjoi2016]小星星 [容斥原理 树形DP]
4455: [Zjoi2016]小星星 题意:一个图删掉一些边形成一棵树,告诉你图和树的样子,求让图上的点和树上的点对应起来有多少方案 看了很多题解又想了一段时间,感觉题解都没有很深入,现在大致有了自 ...
- restful framework 认证源码流程
一.请求到来之后,都要先执行dispatch方法,dispatch方法方法根据请求方式的不同触发get/post/put/delete等方法 注意,APIView中的dispatch方法有很多的功能 ...
- 学习docker on windows (1): 为什么要使用docker
为什么要用Docker? 如果我们想使用某种pc软件, 那么在互联网上查找并安装软件的流程大致如下图: 那么这就有几个问题要弄清楚: 从哪里获得软件 App Store Linux的包管理 从某些网站 ...
- css居中方法与双飞翼布局
居中 类型 方法 对应属性 水平 垂直 水平&垂直 1.父元素使用外边距自动 2.子元素显示行内块级元素,写入内容,父元素设置文本居中 3.给父元素开启非绝对和固定定位作为子元素开启绝对定位的 ...
- web前端 ajax请求上传图片数据类型处理
form: function (url, paras, files, success) {//上传的文件类型是MultipartFile[]//如果把需要的参数直接传入,则会请求错误//设置请求参数的 ...