2015-02-23 61 views
2

所以我試圖創建一個具有搜索元素的應用程序,並且我需要找出一種在數據庫中以智能方式處理數據的方法。在搜索引擎中處理同義詞的數據庫結構

所以我們說如果foo,bar和bleh是同義詞,並且用戶搜索「foo」,系統會在數據庫中搜索包含單詞「foo」(duh)的條目,但它會在另一張表(或其他東西)中查找foo的同義詞,當它找到「bar」和「bleh」時,它也會在搜索數據庫時查找它們。

哪個數據庫(傳統MySQL或noSQL(MongoDB))最適合這個?我應該怎麼做呢?

回答

2

對於單詞搜索,您可以維護給定單詞的同義詞列表,然後搜索這些單詞。這是一個很好的方法:Best way to store and retrieve synonyms in database mysql

當你開始談論多詞搜索時,每個詞可以有它自己的同義詞,因此確定最佳匹配是非常困難的。一個好的搜索算法將使用加權系統來確定最佳匹配。

IE,如果它在標題中的原始關鍵字上找到匹配項,它會在它做同義詞之前返回。

+0

是的,我在想這樣的事情,謝謝!現在我希望我知道如何在Django中使用一個模型實際創建一個ManyToMany關係 – Tebro 2015-02-23 19:14:06