要在Rails上使用全文检索,选择一直不多,以前我一直是使用Ferret + Act_as_ferret + rmmseg的.不过Ferret不支持ruby 1.9,好像也很久没更新了.现在Rails上可用的全文检索又多了一个,那就是Thinking Sphinx . JavaEye的 司徒正美 同学已经写了篇介绍TS的大作,详见利用thinking sphinx实现全文检索 .我只是记录一下我在本机的安装和使用.
安装:
- 安装coreseek:Coreseek全文搜索服务器,它是基于Sphinx的.作者已经提供各个平台的可用版本,并提供下载 我的机器是ubuntu 9.04,所以安装非常的简单,直接下载deb包回来安装即可,没有遇到任何问题.
- 安装mmseg:这个是用来中文分词的.刚才那个下载地址就可以下载,除了下载deb安装包(如果你也是使用ubuntu的话),还记得下载它的源代码回来,因为生成中文词典的时候要用.
- 安装thinking sphinx :我是使用gem的方法安装,详细的安装方法,请参看官方的说明文档,很详细.
配置:
- 在config/environment.rb文件中加上一句:config.gem "freelancing-god-thinking-sphinx",:lib => 'thinking_sphinx',:version => '1.2.5'
- 在你的项目根目录下的Rakefile文件上加上: require 'thinking_sphinx/tasks'
这个的作用就是你可以使用TS为你准备的很多个rake task.
- 在你的model中加上索引: #基本上都是这样子的
define_index do
indexes :content
has :created_at
set_property :delta => true #这个是实时索引,注意,你的model表中得有delta这个字段,类型是boolean
end
- 执行这个rake(请注意第 2 步): #如果你不生成配置文件的话
rake ts:in
#但是如果没有配置文件的话,你不能配置中文分词,所以还是用下面这个吧
rake ts:index
执行完这个,在config目录,你会看到 development.sphinx.conf 这个文件.
- 在修改 development.sphinx.conf 配置文件之前,要先生成中文分词的词典. cd mmseg-3.1/data
tar xvfz mmseg-3.1.tar.gz
mmseg -u unigram.txt
#这时目录下会生成一个unigram.txt.uni文件,这个就是词典了,要改名,这个是必须的,名字也是定死的,只能是uni.lib
mv unigram.uni uni.lib
#然后随便把它放到一个目录去,这个目录在配置Sphinx的时候有用,比如我的
cp uni.lib ~/xdict
- 修改 development.sphinx.conf 配置文件 #找到这个文件中 charset_type = utf-8 的地方
charset_type = utf-8
#改为:
charset_type = zh_cn.utf-8
#并在下面多加一句:
charset_dictpath = /home/yanghuan/xdict/ #这个目录就是存放刚才中文词典的目录
中文全文检索基本上大功告成.
有些值得注意的地方:
- 由于使用了实时索引,所以之前的数据是没有索引的,如果你要重建索引的话,可以使用 rake ts:rebuild
但是不知为何,我重建索引的时候,配置文件居然也变成了默认,所以如果你修改过配置文件的话,要小心.
- 1.2版本以上 #1.2版本以上,使用
ThinkingSphinx.search
#这个不再使用了
ThinkingSphinx::Search.search
-
ThinkingSphinx.search params[:q],:classes => [Post,Comment],:match_mode => :any
#当 params[:q] = 'this' ,注意这里是一个单词的时候,无法匹配,我理解这个模式是任意匹配其中之一,不知是为何.
其它的Thinking Sphinx的使用方法可以上它的官方网站看,上面已经介绍得很详细了.而coreseek的安装也已经极为方便,也就是中文分词的配置是要注意一下的.
在网上也找到其它几篇写得很详细的coreseek安装的文章,共享之.
分享到:
相关推荐
**Sphinx+CoreSeek安装配置指南** Sphinx和CoreSeek是两种强大的全文搜索引擎技术,尤其在处理大量数据的检索和高效率搜索时表现卓越。它们常被用于网站、数据库和其他需要快速、精确搜索功能的应用中。本文将详细...
首先附上coreseek4.1版本下载 前期准备工作: yum install make gcc g++ automake libtool MySQL-client libMySQLclient15-dev libxml2-dev libexpat1-dev autoconf automake libtool 假设我们将文件包下载在 /...
**Sphinx+MySQL安装手册** Sphinx是一款高性能的全文搜索引擎,常用于构建高效的数据检索系统。结合MySQL数据库,可以构建出强大的、适用于千万级数据的全文检索解决方案。本手册将详细讲解如何在生产环境中安装和...
#### 二、Windows 平台上安装和使用 Sphinx/Coreseek ##### 2.1 获取文件 - **Coreseek**:从官方网站 [www.coreseek.cn](http://www.coreseek.cn/) 获取最新版本的Coreseek,截至撰写本文时,版本为coreseek-4.1...
sphinx-coreseek中文手册 sphinx-coreseek中文手册 sphinx-coreseek中文手册 sphinx-coreseek中文手册
总的来说,Sphinx/Coreseek权威手册中文版是一本详尽的指南,涵盖了从安装、配置到开发和优化的全过程,是理解和使用Sphinx/Coreseek进行全文检索的宝贵资源。无论你是初学者还是经验丰富的开发者,都能从中受益匪浅...
Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索、论坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等...
概述:本资源旨在介绍搭建Sphinx+MySQL5.1x+SphinxSE+mmseg中文分词搜索引擎架构的过程,涵盖了Sphinx的基本概念、特性、安装和配置 MySQL+SphinxSE存储引擎、mmseg中文分词搜索引擎架构的搭建过程。 一、Sphinx...
在IT领域,Sphinx、MMSEG、CoreSeek和搜狗词库是四个与搜索引擎和文本处理相关的技术。这里,我们将详细探讨这些技术及其在实际应用中的作用。 首先,Sphinx是一个开源全文搜索引擎,广泛用于网站后台,提供高效、...
CoreSeek/Sphinx是一款强大的开源全文搜索引擎,最初基于俄罗斯数据库公司Altap的数据库搜索引擎技术。它为互联网和企业级应用提供快速、有效的搜索解决方案。Sphinx特别适合处理大量数据和提供实时搜索服务。Sphinx...
4. **编译与安装**:进入Sphinx源码目录,执行配置脚本,配置过程中要确保选择安装中文支持。然后进行编译和安装,这个过程可能需要安装一些额外的依赖,如libxml2和libxslt。 5. **配置Sphinx**:在Sphinx的配置...
#### 四、Sphinx的下载与安装 为了更好地支持中文环境,推荐使用基于Sphinx开发的Coreseek软件。Coreseek在Sphinx的基础上进行了改进,尤其是在中文支持方面表现更佳。 1. **下载安装程序**:访问官方网站...
Sphinx+Python+Oracle构建全文检索系统.pdf
4. **安装与使用**: - **安装Sphinx**:通常通过Python的pip工具进行安装,命令行输入`pip install sphinx`。 - **配置Sphinx**:创建`conf.py`配置文件,定制输出样式、主题、目录结构等。 - **安装XDict**:...
【基于Sphinx+MySQL的千万级数据全文检索】的架构设计着重解决大数据量下的高效全文检索问题。Sphinx是一款源自俄罗斯的开源全文搜索引擎,它在处理海量数据时表现出极高的性能和可扩展性。在DELL PowerEdge 6850...
coreseek是一款基于sphinx开源的搜索引擎,因为sphinx只支持英文和俄文(即只能进行英文分词和俄文分词),所以如果要使用sphinx做中文搜索的话,需要自己独立去导入中文词库。而coreseek里集成了中文词库模块mmseg,...
本文将详细探讨Coreseek、Sphinx-for-chinaese和Sphinx+Scws这三种针对中文环境优化的解决方案。 首先,Sphinx是一个基于SQL的全文检索引擎,具备高速建索引和高性能搜索的特点。它的优势在于能处理大量数据,并且...