【发布时间】:2016-09-13 05:47:26
【问题描述】:
例如Sphinx、Lucene等搜索引擎必须定期合并索引,但数据库索引可以动态更新。为什么一定要合并搜索引擎的索引?
【问题讨论】:
标签: database search database-design full-text-search search-engine
例如Sphinx、Lucene等搜索引擎必须定期合并索引,但数据库索引可以动态更新。为什么一定要合并搜索引擎的索引?
【问题讨论】:
标签: database search database-design full-text-search search-engine
我对 Sphinx 了解不多,但我相信这个问题的答案与它无关。
首先,为什么数据库不需要定期更新?这是因为数据库在大多数情况下是应用程序的主要数据存储。我的意思是,如果您创建、删除或更新任何数据;该数据是数据库记录的手段。您正在从那里删除数据以在应用程序中删除它,或者您首先从数据库中获取数据以进行更新,因为旧版本保留在那里。这一切都表明数据库一直在更新,您的数据始终是最新的。
为什么搜索引擎的索引需要定期重新索引?索引是搜索引擎的数据存储,基本上您正在处理数据,将其放入索引中,然后通过搜索系统检索它。该索引是您的辅助数据资源。这并不适用于所有应用程序,但大多数时候,您将数据库作为主要资源,正如我上面解释的那样与您的应用程序同步,然后索引您未实时反映所有更改的位置。然后根据数据库,您发现索引中的数据有点过时。该重新索引步骤对于您保持数据资源的一致性是必要的。
正如我所说,这种解释并不适用于所有应用程序,但它可以为您提供基本概念。
ps:您的问题中有一个“数据库索引”短语,但它完全是一个不同的主题。
【讨论】: