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 ### 是否支持无缝切换,做增量索引时通常需要 }