- 浏览: 105851 次
- 性别:
- 来自: 南京
最新评论
-
991142:
我也遇到这种问题。现在跟你情况貌似一样。
抓取网页时转换字符集出现问题(问题已解决) -
wysrjh:
期待多写点东西。过来取经来了
restful_authentication的site_key问题 -
healer_kx:
我觉得这种语法很晦涩,不应该形成这种差别,一般来说,有个for ...
Ruby中闭包与block -
liu1084:
为啥不转换成utf8呢?
全国省市县三级数据库 -
wtb:
是的。我这是安装的开发环境。服务器环境我一般不用ubuntu。 ...
ubuntu下rmagick快速安装(备忘)
参考 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插件:
另外在编译前做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)。
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
发表评论
-
rjcop处理图片上传时截取
2009-12-21 02:11 1170http://github.com/jschwindt/rjc ... -
由于页面中对代码加亮的JS
2009-11-05 12:57 883http://alexgorbatchev.com/wiki/ ... -
git server+continuouse integrity
2009-10-28 15:12 1391gem install integrity #安装Int ... -
升级到snow 10.6 ROR的解决
2009-10-13 23:25 926http://weblog.rubyonrails.org/2 ... -
ruby console plugin
2009-10-12 11:09 1237前几天在看 screencasts,发现一好插件:Hirb ... -
restful_authentication的site_key问题
2009-08-17 02:56 1109好久没来写东西了,最近项目太忙,也懒的写啥。不过今天花了两个小 ... -
ubuntu下rmagick快速安装(备忘)
2008-12-09 21:54 2943sudo apt- get install libmagick ... -
关于rails的route的性能
2008-12-05 12:20 1271今天跟蛋黄讨论关于route的性能问题,经过跟踪调试发现,具名 ... -
private的一个问题
2008-07-03 15:34 1039首先,要明白这几个ruby的原理1、默认(包括你所用的定义方法 ... -
rails1.2.3的在rubyforge更新到1.0.0以后产生的问题解决
2008-06-17 17:38 853运行时提示已active0.4.5.不能active1.0.0 ... -
Ruby中闭包与block
2008-06-17 08:01 1296转道友Blog中的一小段code说明ruby中的闭包 proc ... -
截取中文
2008-06-13 21:45 788def trc_utf8(text, length = 4 ... -
用ruby抓取gzip网页
2008-05-26 19:42 2085require 'net/http'require 'uri' ... -
让url更人性化_acts_as_slugable
2008-05-26 09:29 929== Installation<tt>./scri ... -
在ror项目中使用paypal
2008-05-21 18:18 979http://www.codyfauser.com/2008/ ... -
全国省市县三级数据库
2008-05-12 22:41 5950中国省,市,县(区)三级数据信息,已转换成mysql的dump ... -
memcached+libmemcached+memcache_client
2008-05-02 16:33 2831ubuntu下安装memcached非常简单 运行也很简单 ... -
acts_as_taggable_on_steroids代替原acts_as_taggable
2008-04-23 09:45 22151、安装 ruby script/plugin install ... -
ferret+acts_as_ferret+RMMSeg全文索引+中文分词的使用
2008-04-22 13:21 2845首先,在ubuntu下要安装 atp-get install ... -
rails测试驱动开发中的一些知识点滴
2008-04-21 19:28 1157def setup @controller=***.new ...
相关推荐
### Sphinx在Linux下的安装与使用方法 #### 一、Sphinx简介 Sphinx是一款开源的全文检索引擎,它可以提供快速的、高效率的全文搜索功能。Sphinx支持多种数据库(如MySQL、PostgreSQL等)以及文件系统等多种数据源...
【Sphinx 在 Windows 下安装使用】的文档主要涵盖了在Windows操作系统上安装和配置Sphinx全文检索引擎的过程。Sphinx是一个高性能、开源的全文搜索引擎,它提供了多种编程语言的API,如PHP、Python、Perl和Ruby,...
### Windows 下安装使用 Sphinx #### 一、Sphinx 概述 Sphinx 是一款由俄罗斯开发者 Andrew Aksyonoff ...通过以上步骤,你可以成功地在 Windows 环境下安装并使用 Sphinx,为你的应用程序提供强大的全文搜索功能。
### Sphinx 安装及使用详解 #### 一、Sphinx简介 Sphinx是一款高性能的全文搜索...此外,还介绍了如何利用PHP语言与Sphinx交互以及在Yii框架中使用Sphinx的具体方法。希望这些内容能帮助您更好地理解和使用Sphinx。
在安装和配置完 Sphinx 后,你可以将其导入到你的数据库中,作为创建索引的数据源。假设这个文件包含一个 `documents` 表,表中有文章标题、内容等字段,你可以将这些字段配置为索引的字段,并通过 `indexer` 创建...
在描述中提到了一个博文链接,虽然具体内容没有给出,但可以推测博主“sinykk”分享了他在安装和配置Sphinx以及与Coreseek集成过程中的经验。由于没有实际的博文内容,我将基于一般流程来解释Sphinx的安装和使用。 ...
网上的资料大多是在linux环境下的安装使用,当然,作为生产环境很有必要部署在*nix环境下,作为学习测试,还是windows环境比较方便些。 本文旨在提供一种便捷的方式让Sphinx在windows下安装配置以支持中文全文检索...
在安装Sphinx时可能会遇到动态库加载的问题。 ```shell echo "/usr/local/mysql/lib/" >> /etc/ld.so.conf ldconfig ``` ##### 2. 解压Sphinx源码包 下载Sphinx的源码包,并解压。 ```shell tar xzf sphinx-0.9....
标题中的“pocketsphinx在windows下的中文语音识别Demo”表明了本文将关注如何在Windows操作系统中使用开源项目Pocketsphinx进行中文语音识别的演示。Pocketsphinx是一个轻量级的语音识别引擎,尤其适用于嵌入式系统...
在安装PHP7的Sphinx扩展时,如果需要处理中文数据,可能需要集成CoreSeek的源码。这样做的目的是为了确保Sphinx能够正确地分析和索引中文内容。 在Linux和Mac系统上安装PHP7的Sphinx扩展,通常涉及以下步骤: 1. ...
在安装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进行实际操作。 首先,Sphinx是一个开源的全文搜索引擎,它设计用于提供高速、高精度的全文检索服务。它的核心特性包括实时索引、低内存占用以及支持多种数据源,...
在Windows环境下安装Sphinx的PHP扩展,可以使得PHP应用程序能够方便地与Sphinx服务器进行交互,实现高效的全文检索。 在Windows上安装Sphinx PHP5.5扩展,首先需要确保你的开发环境已经配置了PHP5.5版本。这个扩展...
在中文环境下,Sphinx可能面临中文分词的挑战,因为中文句子没有明显的分隔符,这使得普通的英文搜索算法无法直接应用。为了克服这个问题,"sphinx-for-chinese"应运而生,它是在Sphinx的基础上添加了对中文的支持,...
然而,有时在安装过程中可能会遇到 `libsphinxclient` 报错的问题。这通常是由于系统缺少这个库或者版本不匹配导致的。为解决这个问题,你可以: 1. **安装 `libsphinxclient`**:在大多数 Linux 发行版中,可以...
在安装依赖项之后,需要安装 `cmake` 和 `libpcre2-dev`,以便编译 FRR。然后,使用 git 克隆 FRR 的源码,并 checkout 到 v2.0.0 版本。接下来,创建一个 build 目录,并使用 cmake 生成 Makefile。最后,使用 make...
本手册将详细讲解如何在生产环境中安装和配置Sphinx以及与MySQL的集成。 ### 一、Sphinx简介 Sphinx提供实时索引、低延迟查询、布尔运算、短语搜索以及同义词支持等功能,适合于大数据量的搜索引擎应用。其主要...