`
sg552
  • 浏览: 621372 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
47437293-94b9-3b04-9152-8971c7580049
白手起家学习使用Flex
浏览量:18745
社区版块
存档分类
最新评论

Rails3下的 full text search (全文本搜索, 全文匹配?)

阅读更多
最近遇到了一个问题,大数据量下的全文搜索,比较费时。

例如: 100W的数据下,想要搜索,使用where的话,有的时候耗时 20+ 秒。 无法忍受。
同时,100W 的数据,占用了至少1G的空间。 光是全盘扫描的话,也无法在1秒内完成。

所以,还得求助于索引(index)

记得在JAVA项目中,lucene 是个非常好的工具,貌似现在也是。不知道RAILS的世界中如何?

理想的工具应该是:
1. 有个针对中文的分词文件(现成的),就好像LUCENE的那样
2. 使用这个分词文件,对数据库的数据进行索引的生成
3. 每次查询时,先从索引中查,然后再根据索引的结果,找到数据库的记录
4. 显示结果。
或者(最理想的情况)
数据库本身就提供了一个索引的功能。我啥都不管,直接 ensureIndex(ooxx),然后就可以用了。仿佛不存在这个索引的中间层一样。直接操作数据库。

搜索了一下,进展如下:

Well, there's Ferret, which is a port of Lucene to Ruby. Also, Lucene is very easy to use from JRuby, if that's an option for you.

Depending on your needs, you might also want to take a look at Solr, which is a higher-level front-end built on Lucene. There is a Ruby interface, solr-ruby, that interacts with Solr via HTTP.

1. Lucene 在RUBY世界中的替代者是:  Ferret.  不过网站没打开。 github (https://github.com/dbalmain/ferret) 则没问题。
2. Lucene 也有独立的server,  叫 Solr, 可以使用   solr-ruby 与之进行交互。
3. solr-ruby 已经过时了。对于Ruby, 使用 Rsolr, 对于Rails项目,使用  blacklight(
For the latest Ruby Solr library, use RSolr - http://rubygems.org/gems/rsolr

For the latest Rails application plugin, use Blacklight - http://projectblacklight.org 链接打不开. 给作者发了信,结果对方说短期内不会维护了。 ( Hi Shen,

The site won't be going back up any time soon I'm afraid. I just don't
have the time to work on it any more. If I do find the time, I'll be
sure to let you know.

King Regards,
Dave) 。 )

这个。。。看来使用lucene还是比较重量啊。

4. sphinx . 貌似是LUCENE 的竞争者。 sphinx 基本等同于  lucene + solr.  sphinx 不但有lucene的功能,而且也提供了一个SERVER。 对MYSQL, POSTGRES集成的非常好,还有自身的 sphinx QL. 不过由于我用的是 mongo ,所以。。。

5. 不过,sphinx 在RAILS3中有工具: thinking sphinx,   非常详细的文档。github上的关注度超过了1K, 而且最下面有很长的作者列表,粗略估算一下,估计有180人。看来就是它了。。。重点的candidate.

6. 非常棒!找到了中文分词库:  http://www.sphinx-search.com/ sphinx-for-chinese是一款专注于中文搜索的全文检索软件,在sphinx的基础上添加了中文处理模块并优化了中文搜索效果。

7. 其他选项: ravendb  ,内置支持了lucene。是开源的,不过也有商用版本。 用C# 写的。 GITHUB 关注度 700+  不考虑了。。。

8. mongoid plugin:  mongoid_fulltext  上手非常快,文档看起来不错。可惜分词不支持中文。。。 只是很简单的  几个选项(用空格隔开,等等)

mongoid_search, 也是对mongoid的支持。可惜不支持中文。。。


分享到:
评论

相关推荐

    InspiniaAdmin 2.6.1 Rails_Full_Version

    《InspiniaAdmin 2.6.1 Rails Full Version 深度解析》 InspiniaAdmin 2.6.1 Rails Full Version 是一个专为Web应用开发设计的全面的后台管理框架,它基于Ruby on Rails框架,为开发者提供了一整套强大的功能,帮助...

    inspinia admin - v2.5 Rails_Full_Version

    "inspinia admin - v2.5 Rails_Full_Version" 是一个基于Rails框架构建的后台管理系统的完整版本。这个系统采用流行的Inspinia Admin模板,提供了丰富的功能和自定义选项,旨在帮助开发者快速构建高效、现代且用户...

    Rails3常用命令行命令

    Rails3 是 Ruby on Rails 框架的一个版本,它提供了一系列强大的命令行工具,使得开发者可以快速地构建和管理Web应用。在本文中,我们将深入探讨Rails3中的常用命令,帮助你更高效地进行开发工作。 首先,新建一个...

    rails3教程

    ### Rails3教程知识点详解 #### 一、Rails3简介与核心原则 **Rails3**是Ruby on Rails框架的一个重要版本,它对之前的版本进行了大量的改进和优化,使其更加强大和灵活。Rails3的核心设计理念围绕着几个关键的概念...

    inspinia_admin_v2.5_Rails_Full_Version

    Inspinia Admin Rails全版本正是在这样的背景下应运而生,它为Rails开发者提供了现成的前端资源,极大地提升了开发效率。 该模板包含的文件列表“inspinia_admin_v2.5_Rails_Full_Version”很可能包括以下组成部分...

    centOS Rails3环境搭建

    ### CentOS环境下Rails 3开发环境搭建详解 #### 一、准备工作与环境配置 在开始部署Rails 3开发环境之前,我们需要确保系统上已经安装了一些基本的软件包和工具。这一步骤对于后续的Ruby和Rails安装至关重要。 ##...

    rails金典教材3本

    Ruby+on+Rails+3+Tutorial.pdf 应用Rails进行敏捷Web开发第4版.pdf (Agile Web Development with Rails) Rails.Recipes.Rails.3.Edition.pdf

    rails _sunspot 学习笔记

    1. **Ruby on Rails 3**:本文档主要针对 Rails 3 版本。 2. **Solr**:全文检索引擎,Sunspot 依赖于 Solr 来实现其功能。 3. **Sunspot gem**:Sunspot 的核心 gem,通过这个 gem 可以轻松配置和使用 Sunspot 功能...

    Rails 3 in Action

    《Rails 3 in Action》是2011年由Ryan Bigg撰写的一本关于Ruby on Rails框架的权威指南,专门针对当时最新的Rails 3.1版本进行了深入解析。这本书旨在帮助开发者充分利用Rails 3.1的强大功能,提升Web应用开发的效率...

    rails版本区别

    标题与描述概述的知识点主要集中在Rails 2与Rails 3之间的关键差异,这些差异涉及到脚本命令、配置文件以及路由的处理方式。以下是对这些知识点的详细解释与扩展: ### 脚本命令的变化 在Rails 2中,开发者通过一...

    ruby on rails 3 tutorial.pdf

    《Ruby on Rails 3 Tutorial》是一本专门为初学者设计的指南,旨在帮助读者快速掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的一个开源框架,它采用MVC(Model-View-...

    InspiniaAdmin 2.5 Rails_full_version

    InspiniaAdmin 2.5 Rails_full_version

    Rails进行敏捷Web开发(所有版本的源码rails3.0-4.0)

    在“Rails进行敏捷Web开发(所有版本的源码rails3.0-4.0)”中,包含了Rails从3.0到4.0各个主要版本的源代码,这些版本的变迁反映了Rails框架在不同阶段的发展和改进。 1. Rails 3.0: Rails 3是重大升级,引入了...

    Rails101_by_rails4.0

    《Rails101_by_rails4.0》是一本专注于Rails 4.0.0版本和Ruby 2.0.0版本的自学教程书籍,它定位于中文读者,旨在成为学习Rails框架的参考教材。Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它...

    ruby on rails 3

    Ruby on Rails 3 是一个基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,极大地简化了Web开发过程。这个版本是在Ruby 1.9.2环境下发布的,带来了许多改进和新特性,旨在提高...

    rails3文档

    rails3的英文文档

    rails2.3.2

    描述中的 "ruby and rails 的框架rails-2.3.3.zip" 提到的是 Rails 的另一个版本 2.3.3,尽管与标题中的版本号不完全匹配,但我们可以推断这是关于 Rails 2.3.x 系列的讨论。这个压缩包很可能包含了 Rails 框架的源...

    Rails3消息队列系统 Sidekiq

    Rails3消息队列系统 Sidekiq

Global site tag (gtag.js) - Google Analytics