全文搜索Rails 3

时间:2010-11-28 15:25:10

标签: ruby-on-rails-3 full-text-search sunspot xapian

我正在评估Rails 3 ATM的全文搜索方法。这里有人有推荐吗?在我看来好像大多数已知的方法(太阳黑子,狮身人面像,雪貂,Xapian)还没有为Rails 3做好准备。是这样吗?目前我已经有足够的资源留在机器上,我想部署我的应用程序但是,尽管如此,我想尽可能低地保持搜索引擎的空闲负载。我打算使用PostgreSQL,如果它与此有任何关联。

经过一番阅读后,我几乎可以肯定我想使用太阳黑子或Xapian。但是,如果有任何其他(和更好的)解决方案,请告诉我:-)特别是关于太阳黑子我不确定除了我的Rails应用程序之外是否运行完整的Tomcat是聪明的。任何人都有这个星座的经验吗?

提前致谢, ULF

4 个答案:

答案 0 :(得分:6)

如果您正在使用PostgreSQL,那么在需要访问外部库之前,您可以从其内置的文本搜索功能中获得大量的内容。多年来我一直在使用tsearch查询,效果很好。

PostgreSQL全文搜索分析单词邻近度以计算Relevance & ranking,并提供有用的功能,如highlighting of search results

它也知道语言特定的规范化规则,例如它知道忽略英语中的 s es 复数化后缀;所以搜索“国家/地区”也会带回“国家/地区”的突出显示结果,就像谷歌一样。

我并不是说你不应该使用你提到过的库,但是值得调查一下数据库,看看是否已经满足了大多数(如果不是全部)你的要求。

答案 1 :(得分:1)

你可以在Rails3上使用太阳黑子,没问题。我们已成功使用太阳黑子/太阳黑子宝石(1.2.rc4)。在Tomcat服务器中运行Solr并不是一件容易的事。

答案 2 :(得分:0)

对于全文搜索功能,您应该使用搜索引擎。 例如,您可以将Lucene库与jRuby一起使用。 如果你喜欢使用标准的Ruby(cRuby),你可以使用Solr。

对于rails,还有一些Solr插件: 例如,从http://wiki.apache.org/solr/SolRuby开始可能是一个好主意。

答案 3 :(得分:0)

Sunspot已准备好Rails3,我们已经在几个Rails3应用程序上使用它了。我在Solr和Sunspot上取得了很大的成功。我们正在开始blog series on it