Solr 重新索引行为

Solr Re-index behavior

我是 Solr 的新手,我想了解它在重建索引期间的行为。 我有一个批处理 运行 从关系 table 中选择数据并将其添加到 Solr 索引。

根据我对 Solr 的理解,有两种情况需要重新索引

案例 1:当新行插入到您的 table(源数据)时 情况 2:当任何列类型更改时,您必须相应地更改架构。

案例 1 中的旧数据是否仍然可用,供用户在重建索引时进行搜索?

由于旧数据将不再与新模式匹配,模式更改期间会发生什么情况?用户执行搜索时会遇到什么样的行为?

我在网上找不到这些问题的明确答案。任何澄清表示赞赏。

案例 1. Solr 将文档标记为已删除但它保留在索引中,它添加了一个具有相同文档 ID 的新文档。所以,是的,在提交新文档之前数据可用。

情况 2。如果您更新架构,旧数据中的文档仍然可用,但任何已删除的字段将不可见,并且任何新字段都将丢失。仔细想想,一个被索引的字段只是一系列的token,所以这些字段仍然可以被搜索到,但是在新的查询分析中可能会出现不一致,索引中的token会给出令人惊讶的结果,也可能会影响评分.基本上你的结果可能不一致。

举个例子:假设你对一个词进行了语音过滤:Fox,它产生了标记:fux | foks 在你的索引中。

然后您删除拼音过滤器并键入 fox - 将没有与您的索引中的匹配项。

假设您有另一个带有 Porter Stemmer 的字段:术语 indexed 被提取为:index

您删除 PorterStemmer:index 仍会匹配,indexed 不会。