lucene中fst和skiplist之间的确切关系是什么?

问题描述

我已经阅读了一些lucene的源代码和相关文档,但仍有一些未解之谜。

  1. segment 是一个独立的索引,使用跳过列表作为底层实现,对吗?

  2. segment 是不可变的,早期的可能已经过时,所以我们从最近到更早的segment 中读取,对吗?

3) 那么如何在查询搜索时构造 FST 呢? lucene 会为每个段创建一个 FST 吗?例如,为最近的段创建一个 fst,找到该术语,如果没有找到,则为下一个段创建另一个 FST .... 或者 lucene 一次创建所有可能的 FST ?

  1. 但似乎lucene会以字节数组紧凑格式创建FST,并将其存储在目录中。但这似乎没有意义。在我的理解中,FST 应该从段、别名、跳过列表创建,从而保证它是预先排序的(以构建最小的子序列转换器),并且它应该从新的段和跳过列表重新创建/更新,没有意义将其存储在目录中,并通过直接从磁盘读取来重用它,因为我们想要更新信息

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...