用于处理搜索引擎中的同义词的数据库结构

时间:2015-02-23 18:48:39

标签: mysql mongodb database

所以我试图创建一个包含搜索元素的应用程序,我需要找到一种在数据库中以智能方式处理数据的方法。

因此,我们说如果foo,bar和bleh是同义词并且用户搜索" foo",系统将在数据库中搜索包含单词" foo&#的条目34; (duh),但它也会在另一个表(或其他东西)中查找foo的同义词,当它找到" bar"和" bleh"那里它也会在搜索数据库时寻找那些。

哪个数据库(传统MySQL或noSQL(MongoDB))最适合这个?我应该怎么做呢?

1 个答案:

答案 0 :(得分:2)

对于单字搜索,您可以维护给定单词的同义词列表,然后搜索这些单词。这是一个很好的方法:Best way to store and retrieve synonyms in database mysql

当你开始谈论多字搜索时,每个单词都可以拥有自己的同义词,你会看到一个完全不同的野兽,因为确定最佳匹配非常困难。一个好的搜索算法将使用加权系统来确定最佳匹配。

IE,如果它在标题中的原始关键字上找到匹配项,它会在它执行同义词之前返回。