【问题标题】:Why don't databases have good full text indexes [closed]为什么数据库没有好的全文索引[关闭]
【发布时间】:2014-04-12 12:02:53
【问题描述】:

为什么 MySQL、SQL Server、Oracle 等主要 RDBMS 系统都没有良好的全文索引支持?

我意识到大多数数据库在某种程度上都支持全文索引,但它们通常速度较慢,并且功能集较小。似乎每次您想要一个非常好的全文索引时,您都必须走出数据库并使用诸如 Lucene/Solr 或 Sphinx 之类的东西。

为什么这些全文搜索引擎中的技术没有完全集成到数据库引擎中?将数据保存在另一个系统(例如 Lucence)中存在很多问题,包括使数据保持最新,以及无法将结果与其他表连接。这两种技术无法整合是否有特定的技术原因?

【问题讨论】:

  • 关于为什么某些人做出某些设计决策的问题确实不适合这个交流平台,因为答案主要基于猜测和意见。
  • 我不了解 MySQL 或 Oracle,但至少 DB2 和 SQL Server 在较新的版本中确实具有全文搜索功能。

标签: sql database solr full-text-search nosql


【解决方案1】:

RDBMS 索引用于不同的目的。它们在那里为引擎提供了一种优化用户和引擎本身对数据的访问的方法(解决连接、检查外键等)。因此,它们实际上不是函数式数据结构。

全文搜索、标签云等工具可能对增强用户体验非常有用。这些仅服务于用户和应用程序。它们是功能性的,并且需要真正的数据结构...辅助表或派生字段...通常需要大量触发器和代码来保持这些更新。

恕我直言……有很多方法可以实现这些技术。 RDBMS 生产者可能不得不选择一些技术而不是另一种......原因与 RDBMS 引擎本身无关。这似乎不是他们的工作。

【讨论】:

    猜你喜欢
    • 2020-04-26
    • 2013-05-13
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多