`
wtb
  • 浏览: 103329 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

sphinx在ubuntu8.1下安装与使用

阅读更多

参考 dlee 的  http://www.iteye.com/topic/200065

在安装mmseg的过程中出错的解决办法以及自己整理一下在ubuntu8.1下的完整安装与使用

 

g++更换到4.1版本,python使用2.5编译coreseek通过


李沫南还开发了一个支持中文全文检索的Sphinx定制版本——Coreseek,除了支持中文的全文检索外,Coreseek最大的特点是支持 使用Python提供自定义的数据源。我们可以简单地理解为:Coreseek = Sphinx + libmmseg + py_datasource。

Sphinx的主要优势是:
1. 性能优异:robbin以前已经介绍过。
2. 容易学习:架构很清晰,学习成本很低。
3. 与数据库结合更加紧密:对于以数据库为中心的Web应用来说,实现全文检索的功能,使用Sphinx开发工作量更低。


对于中文Rails开发人员而言,做全文检索的最佳组合是Sphinx + libmmseg + Ultrasphinx。Ultrasphinx是一个Rails插件,Rails开发人员可以使用它来很方便地调用Sphinx的功能。

这篇文档先介绍一下这些工具的安装方法,与开发相关的内容将在后续的文章中介绍。


自己打补丁比较麻烦,而且补丁是针对特定的Sphinx版本的,若版本不匹配会更麻烦。最简单的方法是直接使用李沫南已经打好补丁的Coreseek包(打好补丁的sphinx),和自己打补丁的效果是一样的:
http://www.coreseek.com/uploads/sources/coreseek_fulltext_2.5.2.tar.gz
tar zxvf coreseek_fulltext_2.5.2.tar.gz

1、还需要从这里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 install


很不幸,这里我出错了,错误提示为:css/UnigramCorpusReader.cpp:89: error: 'strncmp' was not declared in this scope
手动修改了src/css/UnigramCorpusReader.cpp
在上面添加了一句

#include <string.h>



2、然后编译Sphinx,使用李沫南打好补丁的Coreseek包。注意编译这个版本之前需要先安装一个python-dev的包,在RedHat/CentOS中这样安装:
rpm -ivh python-devel-2.4.3-19.el5.i386.rpm
可能还需要安装mysql-devel这个包,在RedHat/CentOS发行版中有,我这里已经安装好了。
在ubuntu下用apt-get 来搜索并安装
另外在编译前做configure时还需要设置两个环境变量。

cd coreseek_fulltext_2.5.2.source
CPPFLAGS=-I/usr/include/python2.5 LDFLAGS=-lpython2.5 ./configure
make
make install


3. 安装Ultrasphinx
Sphinx在Linux和Windows上都已经安装好了,我们可以通过一个Rails程序来做一下测试。
假设我们原先有一个Rails应用thought_log
cd test_sphinx

在安装Ultrasphinx之前需要先安装一个Ruby Gem:
gem install chronic

然后安装Ultrasphinx插件:
使用 git可这么安装,首先到项目目录
cd  vender/plugin 
git clone  git://github.com/defunkt/ultrasphinx.git
ruby script/plugin install -x svn://rubyforge.org/var/svn/fauna/ultrasphinx/trunk
若这个Rails应用尚未提交到SVN中,或者使用其他版本管理工具,则执行:
ruby script/plugin install svn://rubyforge.org/var/svn/fauna/ultrasphinx/trunk
注意,执行这条命令前需要先安装好SVN for Windows(不是TortoiseSVN)。



4. 修改Sphinx配置文件并创建索引
安装完Ultrasphinx之后,将:
vendor/plugins/ultrasphinx/examples/default.base
复制到:
config/ultrasphinx/default.base

为了正常支持中文字符的全文检索,需要对default.base做一些修改
将其中的:
charset_type = utf-8
改为:
charset_type = zh_cn.utf-8

并且在charset_type设置的下面加入一行:
charset_dictpath = D:/CsFullText25/share/csft_config/dict (此目录为你的coreseek源码的dict地址,你可 cp到别的地方)

然后删除所有charset_table的设置。

要注意在Windows上和Linux上路径的不同写法,为了在Windows上正常使用,需要将default.base中的所有路径改为绝对路径,例如,要将:
<% tmp = "/tmp/sphinx/" %>
改为:
<% tmp = "D:/tmp/sphinx/" %>


修改Model代码,加入全文检索支持:
假设我有一个Model叫做Project,其中有一个属性叫做name,我希望对这个属性做全文检索,我在project.rb中加入一行:
is_indexed :fields => ['created_at', 'name']

生成配置文件:
rake ultrasphinx:configure
这条命令执行后,在config/ultrasphinx下创建了一个development.conf,这个文件就是Sphinx的配置文件。

创建索引:
rake ultrasphinx:index
索引相关的文件创建在:
/tmp/sphinx
其中,“/tmp”是环境变量TMP的值。

5. 启动Sphinx的searchd服务:
rake ultrasphinx:daemon:start

这个时候会在3313端口启动一个searchd,搜索请求将会全部发送到这个端口来执行。
也可以自己手工来启动searchd
searchd --config "/:\WORK\test_shphinx\config\ultrasphinx\development.conf"

6. 测试
ruby script/console
search = Ultrasphinx::Search.new(:query=>'中国')
search.run
search.results

如果执行这几条语句都没有报错,那么安装就成功了。

使用点滴:
1、要特别注意此文件
      development.conf
      sphinx是完全根据此文件中的内容来配置和搜索,也就是说,如果想修改model中的index字段,得要修改或重新生成此文件
2、更多的查询和索引方式,参考
     http://blog.evanweaver.com/files/doc/fauna/ultrasphinx/classes/ActiveRecord/Base.html

分享到:
评论

相关推荐

    sphinx在windows下的安装使用

    sphinx windows 全文检索 搜索引擎sphinx windows 全文检索 搜索引擎sphinx在windows下的安装使用.

    sphinx在linux的安装和使用方法

    sphinx在linux的安装和使用方法

    Sphinx 在 windows 下安装使用.docx

    网络管理linux sphinx 安装和使用的资料比较齐全,本文就实际在windosw下的安装经验进行分享。

    sphinx 安装及使用

    sphinx 安装使用及使用,文档详细的介绍了sphinx在安装使用中遇到问题及解决办法

    Windows下安装使用Sphinx

    Sphinx由俄罗斯人Andrew Aksyonoff 开发的高性能全文搜索软件包,在GPL与商业协议双许可协议下发行。 全文检索是指以文档的全部文本信息作为检索对象的一种信息检索技术。检索的对象有可能是文章的标题,也有可能是...

    Sphinx在Windows下安装使用[支持中文全文检索]-搜索引擎技术

    网上的资料大多是在linux环境下的安装使用,当然,作为生产环境很有必要部署在*nix环境下,作为学习测试,还是windows环境比较方便些。 本文旨在提供一种便捷的方式让Sphinx在windows下安装配置以支持中文全文检索...

    Linux下Mysql5.5的Cmake安装以及sphinx结合

    Linux下Mysql5.5的Cmake安装以及sphinx结合 Linux下Mysql5.5的Cmake安装以及sphinx结合 Linux下Mysql5.5的Cmake安装以及sphinx结合 Linux下Mysql5.5的Cmake安装以及sphinx结合 Linux下Mysql5.5的Cmake安装以及sphinx...

    Sphinx中文手册.pdf

    Sphinx中文手册 sphinx的安装与使用技巧

    Sphinx3安装使用.docx

    Sphinx3安装教程以及简单使用配置详解并附带一些容易踩坑点,希望对你有所帮助

    pocketsphinx在windows下的中文语音识别Demo

    pocketsphinx在windows下的中文语音识别 http://blog.csdn.net/itas109/article/details/78999477

    sphinx 参考手册和源程序

    2.3. 安装 Sphinx 2.4. 已知的问题和解决方法 2.5. Sphinx 快速入门教程 3. 建立索引 3.1. 数据源 3.2. 属性 3.3. 多值属性 ( MVA : multi-valued attributes) 3.4. 索引 3.5. 数据源的限制 3.6. 字符集 ,...

    Sphinx搜索引擎架构与使用文档(和MySQL结合)V1.1.

    二、MYSQL+SPHINX+SPHINXSE安装步骤: 5 1、安装python支持 5 2、编译安装LibMMSeg 5 3、编译安装MySQL 5.1.26-rc、Sphinx、SphinxSE存储引擎 5 4、创建Sphinx索引文件和MySQL数据文件存放目录 6 5、创建MySQL配置...

    Sphinx搜索引擎架构与使用文档(和MySQL结合)

    Sphinx搜索引擎架构与使用文档(和MySQL结合)

    sphinx中文语音训练手册

    本文档介绍Sphinx4在Windows下的中文训练过程及注意事项,与本文档配套的是我自己的训练实例bergtrain和用到的软件。 本文档编写日期 2013-04-23 1、为什么要训练? sphinx4目前的版本中仅提供了英文等语音识别库。...

    Sphinx中文参考手册.rar

    Sphinx 是一个在GPLv2 下发布的一个全文检索引擎,商业授权(例如, 嵌入到其他程序中)需要联系我们(Sphinxsearch.com)以获得商业授权。 一般而言,Sphinx是一个独立的搜索引擎,意图为其他应用提供高速、低空间...

    Sphinx 在WINDOWS和LINUX下安装入门与测试实例

    NULL 博文链接:https://baobeituping.iteye.com/blog/870124

    docker-sphinx:Ubuntu docker 容器中的 Sphinx 文档工具链

    码头工人狮身人面像 文档工具链、乳胶依赖项和 Ubuntu 容器中的 ...使用sphinx-quickstart创建一个新的狮身人面像的项目,并make使用产生的自身Makefile中现有的项目。 中的更多信息。 构建的容器可在。 灵感来自 。

    Sphinx全文索引安装教程

    基 本上看看上面的官方教程和中文使用手册,你应该会安装和使用Sphix全文索引,当然,还有一些细节,需要不断的google和baidu,那为了节省大 家的时间,就出一个完整的Sphinx安装教程和结合PHPWIND程序的使用教程...

    windows下sphinx PHP5.5扩展

    windows下sphinx PHP5.5扩展

    sphinx+xdict+安装说明.zip

    sphinx-for-chinese是一款专注于中文搜索的全文检索软件,在sphinx的基础上添加了中文处理模块并优化了中文搜索效果。

Global site tag (gtag.js) - Google Analytics