sphinx:Rails程序员Sphinx中文全文检索安装指南来源: 发布时间:星期四, 2009年2月12日 浏览:27次 评论:0
当时Sphinx还不支持中文分词
![]() ![]() ![]() ![]() ![]() ![]() ![]() http://www.javaeye.com/topic/196451 李沫南还开发了 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Sphinx ![]() 1. 性能优异:robbin以前已经介绍过 ![]() 2. 容易学习:架构很清晰 ![]() ![]() 3. 和数据库结合更加紧密:对于以数据库为中心 ![]() ![]() ![]() ![]() ![]() Sphinx ![]() ![]() ![]() ![]() ![]() ![]() 对于中文Rails开发人员而言 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 这篇文档先介绍 ![]() ![]() ![]() ![]() ![]() ![]() 1. 在Linux上安装 从这里http://www.sphinxsearch.com/downloads.html下载Sphinx 0.9.8 rc2版: http://www.sphinxsearch.com/downloads/sphinx-0.9.8-rc2.tar.gz tar zxvf sphinx-0.9.8-rc2.tar.gz 要在Sphinx中使用libmmseg ![]() ![]() http://www.coreseek.com/uploads/sources/sphinx-0.98rc2.zhcn-support.patch http://www.coreseek.com/uploads/sources/fix-crash-in-excerpts.patch cd sphinx-0.9.8-rc2 patch -p1 < ../sphinx-0.98rc2.zhcn-support.patch patch -p1 < ../fix-crash-in-excerpts.patch 自己打补丁比较麻烦 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() http://www.coreseek.com/uploads/sources/coreseek_fulltext_2.5.tar.gz tar zxvf coreseek_fulltext_2.5.tar.gz 还需要从这里http://www.coreseek.cn/opensource/mmseg/下载libmmseg: http://www.coreseek.com/uploads/sources/mmseg-0.7.3.tar.gz tar zxvf mmseg-0.7.3.tar.gz 首先编译libmmseg: cd mmseg-0.7.3 ./configure make make ![]() 然后编译Sphinx ![]() ![]() ![]() ![]() ![]() ![]() rpm -ivh python-devel-2.4.3-19.el5.i386.rpm 可能还需要安装mysql-devel这个包 ![]() ![]() ![]() 另外在编译前做configure时还需要设置两个环境变量 ![]() cd coreseek_fulltext_2.5.source CPPFLAGS=-I/usr/ ![]() make make ![]() 2. 在Windows上安装 在Windows上为Sphinx打补丁、编译、连接libmmseg要比在Linux上做这些事情麻烦得多 ![]() ![]() ![]() ![]() ![]() http://www.coreseek.com/ft/csft_ ![]() 执行这个安装包即可安装Coreseek ![]() ![]() 将D:CsFullText25bin加入到环境变量PATH中 ![]() ![]() ![]() 3. 安装Ultrasphinx Sphinx在Linux和Windows上都已经安装好了 ![]() ![]() ![]() ![]() ![]() 假设我们原先有 ![]() cd thought_log 在安装Ultrasphinx的前需要先安装 ![]() gem ![]() 然后安装Ultrasphinx插件: ruby script/plugin ![]() 若这个Rails应用尚未提交到SVN中 ![]() ![]() ruby script/plugin ![]() 注意 ![]() ![]() 为了在Windows上正常使用Ultrasphinx ![]() ![]() ![]() ![]() ![]() Ruby代码 "searchd --config '#{Ultrasphinx::CONF_PATH}'" "searchd --config '#{Ultrasphinx::CONF_PATH}'" 改为: Ruby代码 "searchd --config "#{Ultrasphinx::CONF_PATH}"" "searchd --config "#{Ultrasphinx::CONF_PATH}"" 这样修改 ![]() ![]() searchd --config 'D:/WORK/thought_log/config/ultrasphinx/development.conf' 在Windows上无法正常运行 ![]() ![]() searchd --config "D:/WORK/thought_log/config/ultrasphinx/development.conf" 除了例子中对searchd ![]() ![]() ![]() ![]() ![]() ![]() ![]() 4. 修改Sphinx配置文件并创建索引 安装完Ultrasphinx的后 ![]() vendor/plugins/ultrasphinx/examples/default.base 复制到: config/ultrasphinx/default.base 为了正常支持中文 ![]() ![]() ![]() ![]() 将其中 ![]() char ![]() 改为: char ![]() 并且在char ![]() ![]() ![]() char ![]() 然后删除所有char ![]() ![]() ![]() 要注意在Windows上和Linux上路径 ![]() ![]() ![]() ![]() ![]() ![]() <% tmp = "/tmp/sphinx/" %> 改为: <% tmp = "D:/tmp/sphinx/" %> 另外 ![]() ![]() ![]() seamless_rotate = 0 修改Model代码 ![]() 假设我有 ![]() ![]() ![]() ![]() ![]() ![]() is_indexed :fields => ['created_at', 'name'] 生成配置文件: rake ultrasphinx:configure 这条命令执行后 ![]() ![]() ![]() ![]() ![]() 创建索引: rake ultrasphinx:index 索引相关 ![]() D:tmpsphinx 其中 ![]() ![]() ![]() 5. 启动Sphinx ![]() rake ultrasphinx:daemon:start 这个时候会在3313端口启动 ![]() ![]() ![]() 也可以自己手工来启动searchd searchd --config "D:WORKthought_logconfigultrasphinxdevelopment.conf" 在Windows上还可以将searchd安装为 ![]() searchd -- ![]() 启动这个服务即可 ![]() 6. 测试 ruby script/console search = Ultrasphinx::Search. ![]() ![]() search.run search.results 如果执行这几条语句都没有报错 ![]() ![]() 0
相关文章读者评论发表评论 |