【问题标题】:Database structure for handling synonyms in a search engine用于在搜索引擎中处理同义词的数据库结构
【发布时间】:2017-07-30 18:56:16
【问题描述】:

所以我正在尝试创建一个具有搜索元素的应用程序,并且我需要找出一种方法来以一种智能的方式处理数据库中的数据。

所以我们说如果 foo、bar 和 bleh 是同义词,并且用户搜索“foo”,那么系统将在数据库中搜索包含“foo”一词的条目(duh),但它也会在另一个表(或其他东西)中查找 foo 的同义词,当它在那里找到“bar”和“bleh”时,它也会在搜索数据库时查找它们。

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

【问题讨论】:

    标签: mysql mongodb database


    【解决方案1】:

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

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

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

    【讨论】:

    • 是的,我在想这样的事情,谢谢!现在我希望我知道如何在 Django 中与一个模型实际创建多对多关系
    猜你喜欢
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 2017-07-23
    • 1970-01-01
    相关资源
    最近更新 更多