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

good luck guys

welcome

 
 
 

日志

 
 

基于Sphinx的中文全文检索引擎Coreseek的安装 - 每天学点代码技术 - ITeye技术网站  

2011-08-17 16:46:10|  分类: sphinx |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

按照Sphinx来进行全文检索,默认只支持按字拆分,如果要实现比较好的中文分词,可以使用基于libmmseg的引擎Coreseek。

yum install g++

yum install gcc

yum install make

yum install mysql mysql-devel php-mysql qt4-mysql

wget http://www.coreseek.cn/uploads/sources/mmseg3_0b3.tar.gz

wget http://www.coreseek.cn/uploads/sources/csft3_0b4.tar.gz

tar -xzvf mmseg3_0b3.tar.gz

tar -xzvf csft3_0b4.tar.gz

cd mmseg.3.0b3/

./configure --prefix=/var/mmseg    

make

make install

cd ..

cd csft3_0b4

./configure --prefix=/var/coreseek --with-mysql --with-mmseg-includes=/var/mmseg/include/mmseg --with-mmseg-libs=/var/mmseg/lib/

make

make install

把mmseg的命令加到环境变量中,然后运行mmseg,就能输入安装成功的信息了:

ln -s /usr/local/mmseg/bin/mmseg /bin/mmseg


 
cd /var/coreseek/

mkdir dict

cd /home/hfahe/mmseg.3.0b3/data                      #原文件的目录

/var/mmseg/bin/mmseg -u unigram.txt

cp unigram.txt.uni /var/coreseek/dict/uni.lib

cd /var/coreseek/dict/

vi mmseg.ini

输入

[mmseg]

merge_number_and_ascii=1;

number_and_ascii_joint=-;

compress_space=0;

seperate_number_ascii=1;

 

cd /var/coreseek/etc/

cp sphinx.conf.dist sphinx.conf

mysql -h 192.168.1.xxx -u root -pxxx test < example.sql

vi sphinx.conf

修改配置里的数据库ip、用户名、密码、数据库

/var/coreseek/bin/indexer --config /var/coreseek/etc/sphinx.conf

这时可能会出现关于libmysqlclient的错误,解决办法如下:

locate libmysqlclient.so

ln -s /usr/local/lib/mysql/libmysqlclient.so.16 /lib/libmysqlclient.so.16

/var/coreseek/bin/indexer --config /var/coreseek/etc/sphinx.conf --all

/var/coreseek/bin/search --config /var/coreseek/etc/sphinx.conf doc

Xhtml代码 复制代码
  1. displaying matches:   
  2. 1. document=3weight=1group_id=2date_added=Thu Apr 22 15:15:25 2010   
  •         id=3  
  •         group_id=2  
  •         group_id2=7  
  •         date_added=2010-04-22 15:15:25   
  •         title=another doc   
  •         content=this is another group   
  • 2. document=4weight=1group_id=2date_added=Thu Apr 22 15:15:25 2010   
  •         id=4  
  •         group_id=2  
  •         group_id2=8  
  •         date_added=2010-04-22 15:15:25   
  •         title=doc number four   
  •         content=this is to test groups   
  •   
  • words:   
  • 1. 'doc': 2 documents, 2 hits  displaying matches: 1. document=3, weight=1, group_id=2, date_added=Thu Apr 22 15:15:25 2010 group_id=2 group_id2=7 date_added=2010-04-22 15:15:25 title=another doc content=this is another group 2. document=4, weight=1, group_id=2, date_added=Thu Apr 22 15:15:25 2010 group_id=2 group_id2=8 date_added=2010-04-22 15:15:25 title=doc number four content=this is to test groups words: 1. 'doc': 2 documents, 2 hits

    要支持中文,需要将配置里的charset_type值修改为zh_cn.utf-8,并添加charset_dictpath = /var/coreseek/dict。

    还需要将sql_query_pre = SET NAMES utf8这一行配置打开。

    /var/coreseek/bin/indexer --config /var/coreseek/etc/sphinx.conf --all

    /var/coreseek/bin/search --config /var/coreseek/etc/sphinx.conf 中文

    试试是否已经可以正常检索中文了。

    coreseek默认的配置文件是etc下的csft.conf,使用此文件时可以不需要加入config的配置。

    此时应该已经可以显示正确结果了。

    常见问题解决办法

    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
    4、/usr/local/sphinx/bin/search test

          但此时报了一个search error: failed to open /usr/local/sphinx/var/data/test1.sph: No such file or directory.这样的错误,网上找了一下解决方法是在创建索引是加上--all参数,也就是:


    /usr/local/sphinx/bin/indexer --all
    5、创建索引时报了一个这样的错误:FATAL: index 'test1': 'synonyms': failed to open '/data/exceptions.txt',进入配置文件csft.conf,把/data/exceptions.txt注释掉即可,创建完索引,远行测试OK

    引文来源  基于Sphinx的中文全文检索引擎Coreseek的安装 - 每天学点代码技术 - ITeye技术网站

  •   评论这张
     
    阅读(503)| 评论(0)
    推荐 转载

    历史上的今天

    评论

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

    页脚

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