【问题标题】:how lucene use skip list in inverted index?lucene 如何在倒排索引中使用跳过列表?
【发布时间】:2012-11-20 13:55:29
【问题描述】:

在一些博客和 lucene 网站中,我知道 lucene 在倒排索引中使用数据结构“跳过列表”。但我对此有些疑惑。

1:一般情况下,跳过列表可能会在内存中使用,但倒排索引存储在磁盘中。那么 lucene 在索引搜索时是如何使用它的呢?只是在磁盘上扫描或加载到内存中?

2:skip list的插入操作符经常使用random(0,1)来决定是否插入到下一级,但是在luncene的介绍中,似乎每个术语都有一个固定的区间,所以lucene创建“skip list”的方式不同或不是吗?

如果我错了,请纠正我。

【问题讨论】:

    标签: lucene inverted-index skip-lists


    【解决方案1】:

    Lucene 以几种不同的方式使用内存,即使在创建 IndexReader 以进行搜索和排序等操作(字段缓存)时索引仍保存在磁盘上:

    http://blog.mikemccandless.com/2010/07/lucenes-ram-usage-for-searching.html

    基本上,这些二进制文件会被复制到 RAM 中,以加快扫描速度并减少 I/O。您在上面的链接中得到了提示,如何使用某些参数进行搜索可以强制 Lucene “在搜索中跳过术语”因此,可以在哪里使用该数据结构。

    Lucene 是开源的,因此您可以自己查看在 Java 或 Lucene.NET 中用于 C# 实现的代码。

    【讨论】:

      【解决方案2】:
      猜你喜欢
      • 2011-08-15
      • 2013-07-07
      • 2011-07-12
      • 2014-05-31
      • 2012-02-24
      • 1970-01-01
      • 1970-01-01
      • 2016-04-21
      • 1970-01-01
      相关资源
      最近更新 更多