正确的数据库/方法,用于匹配每条记录的许多可能的“关键词”进行关键短语查询

时间:2011-02-09 06:51:10

标签: database-design associations keyword

我的rails 3应用程序在Heroku上使用postgres来托管普通数据库,比如跟踪消息和用户。我100%的经验是使用普通的关系数据库和SQL。

但是现在我添加了一个新方法“lookup_product_by_keyword”,它访问与应用程序其余部分无关的数据集,因此可以在另一个框架或数据库中实现。我想知道MongoDB或其他类型的数据库是否可能是实现这一功能的方式。

我们的目标是找到5000种产品类型中的一种(“螺丝刀”“开瓶器”等),其中最匹配的列表可能是50,0000个关键词和短语。例如,可能有10-20个单词或短语匹配并返回“螺丝刀”(“飞利浦螺丝刀”“平头螺丝刀”等)。

我怀疑有某种类型的聪明设计,可能是围绕一个非常不同的MySQL,Postgres等专业数据库构建的,这些数据库针对那种“关联”而不是关系信息结构进行了优化。

任何指针都会受到赞赏......

1 个答案:

答案 0 :(得分:1)

您正在研究的是能够有效处理文本索引的数据库吗?我不确定no-sql数据库如何帮助你解决这个问题。 Oracle从oracle 9中引入了oracle text。(我认为)并且我使用它来解决与你类似的问题,并且表现令人钦佩。

如果您正在查看数据库供应商不可知解决方案,那么我建议您检查我们的hibernate search.它使用下面强大的lucene索引并提供一个非常可行的抽象层。