`
wtb
  • 浏览: 106098 次
  • 性别: 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在linux的安装和使用方法

    ### Sphinx在Linux下的安装与使用方法 #### 一、Sphinx简介 Sphinx是一款开源的全文检索引擎,它可以提供快速的、高效率的全文搜索功能。Sphinx支持多种数据库(如MySQL、PostgreSQL等)以及文件系统等多种数据源...

    Sphinx 在 windows 下安装使用.docx

    【Sphinx 在 Windows 下安装使用】的文档主要涵盖了在Windows操作系统上安装和配置Sphinx全文检索引擎的过程。Sphinx是一个高性能、开源的全文搜索引擎,它提供了多种编程语言的API,如PHP、Python、Perl和Ruby,...

    Windows下安装使用Sphinx

    ### Windows 下安装使用 Sphinx #### 一、Sphinx 概述 Sphinx 是一款由俄罗斯开发者 Andrew Aksyonoff ...通过以上步骤,你可以成功地在 Windows 环境下安装并使用 Sphinx,为你的应用程序提供强大的全文搜索功能。

    sphinx 安装及使用

    ### Sphinx 安装及使用详解 #### 一、Sphinx简介 Sphinx是一款高性能的全文搜索...此外,还介绍了如何利用PHP语言与Sphinx交互以及在Yii框架中使用Sphinx的具体方法。希望这些内容能帮助您更好地理解和使用Sphinx。

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

    在安装和配置完 Sphinx 后,你可以将其导入到你的数据库中,作为创建索引的数据源。假设这个文件包含一个 `documents` 表,表中有文章标题、内容等字段,你可以将这些字段配置为索引的字段,并通过 `indexer` 创建...

    sphinx 的安装及使用 windws centos coreseek

    在描述中提到了一个博文链接,虽然具体内容没有给出,但可以推测博主“sinykk”分享了他在安装和配置Sphinx以及与Coreseek集成过程中的经验。由于没有实际的博文内容,我将基于一般流程来解释Sphinx的安装和使用。 ...

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

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

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

    在安装Sphinx时可能会遇到动态库加载的问题。 ```shell echo "/usr/local/mysql/lib/" &gt;&gt; /etc/ld.so.conf ldconfig ``` ##### 2. 解压Sphinx源码包 下载Sphinx的源码包,并解压。 ```shell tar xzf sphinx-0.9....

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

    标题中的“pocketsphinx在windows下的中文语音识别Demo”表明了本文将关注如何在Windows操作系统中使用开源项目Pocketsphinx进行中文语音识别的演示。Pocketsphinx是一个轻量级的语音识别引擎,尤其适用于嵌入式系统...

    php7的sphinx扩展,适用linux,mac

    在安装PHP7的Sphinx扩展时,如果需要处理中文数据,可能需要集成CoreSeek的源码。这样做的目的是为了确保Sphinx能够正确地分析和索引中文内容。 在Linux和Mac系统上安装PHP7的Sphinx扩展,通常涉及以下步骤: 1. ...

    OpenCV在Ubuntu上脚本自动安装

    在安装OpenCV之前,需要先安装依赖包,依赖包包括但不限于:build-essential、libgtk2.0-dev、libjpeg-dev、libtiff4-dev、libjasper-dev、libopenexr-dev、cmake、python-dev、python-numpy、python-tk、libtbb-dev...

    Linux下php+sphinx实例

    本文将详细介绍如何在Linux下配置和使用PHP与Sphinx进行实际操作。 首先,Sphinx是一个开源的全文搜索引擎,它设计用于提供高速、高精度的全文检索服务。它的核心特性包括实时索引、低内存占用以及支持多种数据源,...

    windows下sphinx PHP5.5扩展

    在Windows环境下安装Sphinx的PHP扩展,可以使得PHP应用程序能够方便地与Sphinx服务器进行交互,实现高效的全文检索。 在Windows上安装Sphinx PHP5.5扩展,首先需要确保你的开发环境已经配置了PHP5.5版本。这个扩展...

    sphinx+xdict+安装说明.zip

    在中文环境下,Sphinx可能面临中文分词的挑战,因为中文句子没有明显的分隔符,这使得普通的英文搜索算法无法直接应用。为了克服这个问题,"sphinx-for-chinese"应运而生,它是在Sphinx的基础上添加了对中文的支持,...

    sphinx扩展,适用linux

    然而,有时在安装过程中可能会遇到 `libsphinxclient` 报错的问题。这通常是由于系统缺少这个库或者版本不匹配导致的。为解决这个问题,你可以: 1. **安装 `libsphinxclient`**:在大多数 Linux 发行版中,可以...

    Ubuntu20.04源码编译安装FRR.pdf

    在安装依赖项之后,需要安装 `cmake` 和 `libpcre2-dev`,以便编译 FRR。然后,使用 git 克隆 FRR 的源码,并 checkout 到 v2.0.0 版本。接下来,创建一个 build 目录,并使用 cmake 生成 Makefile。最后,使用 make...

    sphinx+mysql 安装手册

    本手册将详细讲解如何在生产环境中安装和配置Sphinx以及与MySQL的集成。 ### 一、Sphinx简介 Sphinx提供实时索引、低延迟查询、布尔运算、短语搜索以及同义词支持等功能,适合于大数据量的搜索引擎应用。其主要...

Global site tag (gtag.js) - Google Analytics