【问题标题】:How can a trie be used in a search engine(not for autocomplete)?如何在搜索引擎中使用 trie(不用于自动完成)?
【发布时间】:2020-02-15 21:50:29
【问题描述】:

我遇到过这个:

搜索引擎存储的核心信息是一个字典,称为倒排 索引或倒排文件,存储键值对 (w,L),其中 w 是单词,L 是 包含单词 w 的页面集合。这本词典中的键(词)是 称为索引词,应该是一组词汇条目和专有名词 尽可能大。该字典中的元素称为出现列表,并且 应该覆盖尽可能多的网页。

我们可以有效地实现倒排索引,其数据结构包括 以下内容:

  1. 存储术语出现列表的数组(无特定顺序)。
  2. 索引术语集的压缩树,其中每个叶存储索引 关联词的出现列表。 将出现列表存储在 trie 之外的原因是为了保持 尝试足够小的数据结构以适合内部存储器。相反,由于 它们的总大小很大,出现列表必须存储在磁盘上。

我不明白。如果使用字典来存储出现列表,那么 trie 的目的是什么?如果我无论如何都要在字典中搜索这个词,为什么还要费心呢?

编辑:引用来自 Michael T. Goodrich、Roberto Tamassia、Michael H. Goldwasser 的 Python 中的数据结构和算法

【问题讨论】:

    标签: python tree search-engine trie inverted-index


    【解决方案1】:

    将每个单词 w 放入 Trie 数据结构中可以减少存储单词所需的内存并加快对特定单词的搜索。在 Trie 中每个单词的末尾,您会找到一个指向包含您搜索的单词的文档的指针列表。

    【讨论】:

      猜你喜欢
      • 2018-12-07
      • 1970-01-01
      • 2010-12-04
      • 2011-06-28
      • 2014-07-02
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多