centos 下安装 shpinx2.1.7 记录

 

 安装sphinx

yum install -y mysql mysql-devel 
yum install automake autoconf 
cd /usr/local/src/
wget http://sphinxsearch.com/files/sphinx-2.1.7-release.tar.gz
tar -zxvf sphinx-2.1.7-release.tar.gz 
cd sphinx-2.1.7-release
./configure --prefix=/usr/local/sphinx --with-mysql=/usr/local/mysql
make
make install
cd /usr/local/sphinx/
cp etc/sphinx.conf.dist etc/sphinx.conf

 

配置sphinx

vim etc/sphinx.conf
主要对 索引源以及索引进行配置,索引源主要配置数据库等源的配置,索引就是对索引进行的一些配置。

可选配置:索引器配置,sphinx 服务进程配置

需要注意的是:索引源以及索引要对应上(两个src1)
代码片段:
source src1{....

index simon_test{
        source = src1

具体配置请看附1

 

启动sphinx

bin/indexer -c etc/sphinx.conf simon_test

 

 

可能遇到的问题

1.错误:
bin/indexer -c etc/sphinx.conf article bin/indexer: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory 解决办法: vim /etc/ld.so.conf
增加mysql lib 目录
/usr/local/mysql/lib/mysql 增加后执行 ldconfig

 

附1

##### 索引源 ###########
source article_src
{
type = mysql    #####数据源类型
sql_host = 192.168.1.10    ######mysql主机
sql_user = root   ########mysql用户名
sql_pass = pwd############mysql密码
sql_db = test #########mysql数据库名
sql_port= 3306 ###########mysql端口
sql_query_pre = SET NAMES UTF8 ###mysql检索编码,特别要注意这点,很多人中文检索不到是数据库的编码是GBK或其他非UTF8
sql_query = SELECT id,title,cat_id,member_id,content,created FROM sphinx_article ####### 获取数据的sql

#####以下是用来过滤或条件查询的属性############

sql_attr_uint = cat_id ######## 无符号整数属性
sql_attr_uint = member_id
sql_attr_timestamp = created ############ UNIX时间戳属性

sql_query_info = select * from sphinx_article where id=$id ######### 用于命令界面端(CLI)调用的测试

}

### 索引 ###

index article
{
source = article_src ####声明索引源
path = /usr/local/sphinx/var/data/article #######索引文件存放路径及索引的文件名
docinfo = extern ##### 文档信息存储方式
mlock = 0 ###缓存数据内存锁定
morphology = none #### 形态学(对中文无效)
min_word_len = 1 #### 索引的词最小长度
charset_type = utf-8 #####数据编码

##### 字符表,注意:如使用这种方式,则sphinx会对中文进行单字切分,
##### 即进行字索引,若要使用中文分词,必须使用其他分词插件如 coreseek,sfc

min_prefix_len = 0 #最小前缀
min_infix_len = 1 #最小中缀
ngram_len = 1 # 对于非字母型数据的长度切割

#加上这个选项,则会对每个中文,英文字词进行分割,速度会慢
#ngram_chars = U+4E00..U+9FBF, U+3400..U+4DBF, U+20000..U+2A6DF, U+F900..U+FAFF,\
#U+2F800..U+2FA1F, U+2E80..U+2EFF, U+2F00..U+2FDF, U+3100..U+312F, U+31A0..U+31BF,\
#U+3040..U+309F, U+30A0..U+30FF, U+31F0..U+31FF, U+AC00..U+D7AF, U+1100..U+11FF,\
#U+3130..U+318F, U+A000..U+A48F, U+A490..U+A4CF

}

######### 索引器配置 #####
indexer
{
mem_limit = 256M ####### 内存限制
}

############ sphinx 服务进程 ########
searchd
{
#listen = 9312 ### 监听端口,在此版本开始,官方已在IANA获得正式授权的9312端口,以前版本默认的是3312

log = /usr/local/sphinx/var/log/searchd.log #### 服务进程日志 ,一旦sphinx出现异常,基本上可以从这里查询有效信息,轮换(rotate)出的问题一般可在此寻到答案
query_log = /usr/local/sphinx/var/log/query.log ### 客户端查询日志,笔者注:若欲对一些关键词进行统计,可以分析此日志文件
read_timeout = 5 ## 请求超时
max_children = 30 ### 同时可执行的最大searchd 进程数
pid_file = /usr/local/sphinx/var/log/searchd.pid #######进程ID文件
max_matches = 1000 ### 查询结果的最大返回数
seamless_rotate = 1 ### 是否支持无缝切换,做增量索引时通常需要
}

 

posted on 2014-04-02 16:43  一天一點  阅读(193)  评论(0编辑  收藏  举报