Ruby on Rails - 如何匹配数据库中的2个句子

时间:2014-03-28 00:55:03

标签: ruby-on-rails ruby

如何匹配数据库中的2个句子以检索最匹配的句子?

例如,有三个用户(user_1,user_2,user_3)。

user_1在数据库中插入以下描述:

"蝙蝠侠Begins是一部2005年英美超级英雄电影,基于虚构的DC漫画人物蝙蝠侠,由克里斯托弗诺兰共同编写和导演。它将Christian Bale和Michael Caine,Liam Neeson,Katie Holmes,Gary Oldman和Morgan Freeman一起扮演蝙蝠侠。" (来自维基)

user_2然后将电影的描述插入到不同的数据库中: "基于漫画的蝙蝠侠电影"

user_3 insert:" Robin Hood是一部2010年英美史诗冒险电影,以罗宾汉传奇为基础,由雷德利·斯科特执导,主演罗素·克劳和凯特·布兰切特。" (来自维基)

并且算法返回user_1&user_2的描述匹配。

我正在使用ruby版本2.0.0和rails 4.0.4

如果你可以指引我使用任何合适的算法/宝石。

2 个答案:

答案 0 :(得分:1)

您应该尝试为您的rails应用程序添加类似gem的搜索引擎。要查看的一些选项是ThinkingSphinx,SearchKick或SunSpot。 https://www.ruby-toolbox.com/categories/rails_search是一个进行更多研究的好地方,哪些将成为适合你的宝石。

答案 1 :(得分:0)

您所描述的是全文搜索。 Ace列出了一些实现它的宝石。但是,如果您的应用程序是基本的,那么您可以在数据库中执行此操作。 Postgres和Mysql内置了功能。甚至Sqlite也有实现它的扩展。因此,在全文搜索的语言中,user_1和user_3输入了文档,user_2输入了查询。以下是使用Rails 4和Postgres描述如何执行此操作的博客文章的链接:https://coderwall.com/p/vngr0a