【问题标题】:Use sqlite for search indexing?使用 sqlite 进行搜索索引?
【发布时间】:2012-03-09 06:11:04
【问题描述】:

你认为这是个好主意吗?

就像在 sqlite 数据库中存储来自真实数据库的关键字以及对象 ID。因此,当您搜索时,您使用 sqlite 来获取您找到的对象的 ID,然后使用这些 ID 查询真实数据库。

mysql 数据库中的示例对象:

ID   slug       title        content
_____________________________________________________________________________
5    bla-bla    Bla Bla      I know what you did last summer

这将在 sqlite 中被索引,例如:

ID   keywords
_____________________________________________________________________________
5    know, summer, last, what

或许

   keyword     objects
   _____________________
   know        5, 6
   summer      5
   lst         5, 7, 10
   ...

但你会得到一个庞大的数据库,考虑到英语词汇,可能有大约 15000 个条目

【问题讨论】:

    标签: php mysql sqlite search indexing


    【解决方案1】:

    但你会得到一个庞大的数据库,可能有大约 15000 个条目

    15,000 条记录对于 MySQL 和大多数其他 RDBMS 来说是小菜一碟。您应该做的是在 MyIsam 表格中设置您的文本,以便您可以利用全文索引和searching

    【讨论】:

      【解决方案2】:

      数据库的理念是它能够非常快速高效地进行查询操作。

      另一方面,SQLite 是用于开发目的的完美工具,因为您不必设置数据库实例。然而,它也带来了一些缺点,例如它不能同时有效地或根本无法处理许多并发连接。

      因此,在我看来,建议的方法不是最好的,因为 SQLite 无法处理许多查询,因此破坏了数据库的全部目的。

      仅仅维护一个能够处理所有查询的高性能数据库可能会好得多。通常有很多方法可以优化数据库,例如 mysql、postgresql 等。

      编辑

      只是一个想法。也许将字符串分解成单词并将它们视为关键字并不是最好的方法。问题是,如果系统中某处使用了某个关键字,则搜索只会返回,但不会考虑上下文和关键字来自的优先级。我对搜索了解不多,但拥有某种排名系统似乎是有益的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-11-29
        • 2016-06-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-06
        相关资源
        最近更新 更多