注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

good luck guys

welcome

 
 
 

日志

 
 

全文检索Sphinx/Coreseek使用  

2011-09-07 14:04:19|  分类: sphinx |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Sphinx:http://www.sphinxsearch.com/
Coreseek:http://www.coreseek.com/

一、简介:

Coreseek是基于sphinx更完善支持中文搜索功能。故其原理同sphinx,如下:

1、sphinx的两个主要进程indexer和searchd。
indexer任务是从数据库(或者其他的数据源)收集原始的数据,然后建立相应的索引。
searchd则是通过读取indexer建立的索引来响应客户端的请求。

2、sphinx工作前提:配置文件修改
a、需要让其获取数据源从何而来(即:配置source信息)
b、建立索引,对数据源的哪部分数据进行索引等详细信息(即:indexer的所有信息)
c、执行indexer生产索引,最用才启用searchd服务

3、应用主要是通过api接口实现,支持php、perl、python及ruby等语言调用。

二、系统环境:

最好使用中文环境utf8
locale查看
修改/etc/profile 文件添加 export LC_ALL=zh.CN-UTF8

确认autoconf、automake安装可执行下
autoconf
automake

三、软件编译:

wget -c http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.13.tar.gz  tar zxvf coreseek-3.2.13.tar.gz  cd coreseek-3.2.13/mmseg-3.2.13  ./configure --prefix=/usr/local/mmseg  make && make install  

##中文分词测试,如果显示不正常,请检查当前环境下的locale和UTF-8中文字符显示设置

/usr/local/mmseg/bin/mmseg -d /usr/local/mmseg/etc src/t1.txt

根据需要编译:

#只支持xml源数据源  ./configure --prefix=/usr/local/coreseek --without-python --without-mysql --with-mmseg --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/  make && make install  #执行测试  /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx-min.conf.dist  #支持Mysql数据源  ./configure --prefix=/usr/local/coreseek --with-mmseg=/usr/local/mmseg --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/ --with-mysql=/usr/local/mysql --with-mysql-includes=/usr/local/mysql/include/mysql/ --with-mysql-libs=/usr/local/mysql/lib/mysql/  make && make install  

可能遇到问题处理:

1、提示config.status: error: cannot find input file: src/Makefile.in
执行以下命令

aclocal  libtoolize --force  automake --add-missing  autoconf  autoheader  make clean  

注:个人只运行下autoconf及automake即通过

2、Linux环境下,如遇到pthread问题,请先直接执行以下指令在进行configure前:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib  export LD_LIBRARY_PATH  

3、如果出现undefined reference to `libiconv’的类似错误,可以按照如下方法处理:
方法一:(Linux使用)
直接执行:export LIBS=”-liconv”
然后再次configure后,进行编译安装
方法二:
首先configure,然后vim src/makefile
在其中搜索lexpat,在其后加上 -liconv
修改后该行应该为:-lexpat -liconv -L/usr/local/lib
然后再次make
方法三:
#首先configure,然后vim config/config.h
在其中搜索USE_LIBICONV,将其后的1修改为0
然后再次make

四、文件配置:(/usr/local/coreseek/etc/csft.conf)

a、数据源(这里以mysql数据为例 也可支持xml方式)

source sphinx  {  sql_host = 192.168.1.100   # mysql服务器ip  sql_user = sphinx     # mysql用户名  sql_pass = sphinx     # mysql密码  sql_db = sphinx     # mysql数据库名  type = mysql      # 数据源类型  sql_port= 3306      # optional, default is 3306  sql_query_pre= SET SESSION query_cache_type=OFF  sql_query_pre= SET NAMES utf8;  sql_query = SELECT * FROM documents WHERE # 具体数据列  }  

b、索引任务:

index sphinx_test  {  source   = sphinx  path   = /usr/local/coreseek/var/data/sphinx  docinfo   = extern  mlock   = 0  morphology   = none  stopwords   =  min_word_len  = 1  charset_type  = utf-8  # 简单分词,只支持0和1,如果要搜索中文,请指定为1  ngram_len    = 1  # 需要分词的字符,如果要搜索中文,去掉前面的注释  min_prefix_len  = 0  min_infix_len  = 1  }  

c、搜索服务配置(基本保持默认即可)

searchd  {  port                            = 9312  log                             = /usr/local/coreseek/var/log/searchd.log  query_log                       = /usr/local/coreseek/var/log/query.log  read_timeout                    = 5  max_children                    = 30  pid_file                        = /usr/local/coreseek/var/log/searchd.pid  max_matches                     = 3000  seamless_rotate                 = 1  preopen_indexes                 = 0  unlink_old                      = 1  }  

五、服务启动:

执行indexer生成索引:

/usr/local/coreseek/bin/indexer --rotate sphinx_test  #只对sphinx_test索引任务  或  /usr/local/coreseek/bin/indexer --all --rotate  # 针对所有索引任务  

运行搜索服务searchd:

/usr/local/coreseek/bin/searchd &  

六、应用:

API接口程序调用




引文来源  全文检索Sphinx/Coreseek使用
  评论这张
 
阅读(1274)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017