所以我试图创建一个包含搜索元素的应用程序,我需要找到一种在数据库中以智能方式处理数据的方法。
因此,我们说如果foo,bar和bleh是同义词并且用户搜索" foo",系统将在数据库中搜索包含单词" foo&#的条目34; (duh),但它也会在另一个表(或其他东西)中查找foo的同义词,当它找到" bar"和" bleh"那里它也会在搜索数据库时寻找那些。
哪个数据库(传统MySQL或noSQL(MongoDB))最适合这个?我应该怎么做呢?
答案 0 :(得分:2)
对于单字搜索,您可以维护给定单词的同义词列表,然后搜索这些单词。这是一个很好的方法:Best way to store and retrieve synonyms in database mysql
当你开始谈论多字搜索时,每个单词都可以拥有自己的同义词,你会看到一个完全不同的野兽,因为确定最佳匹配非常困难。一个好的搜索算法将使用加权系统来确定最佳匹配。
IE,如果它在标题中的原始关键字上找到匹配项,它会在它执行同义词之前返回。