Solr架构:在不使用架构类型定义时更新它是否安全?

时间:2018-03-06 09:02:13

标签: solr

何时更新Solr架构并保留现有索引是否安全?

我现在正在将Solr升级到版本7.2,并且旧架构中的某些类型定义会在日志中生成警告,如:

Solr loaded a deprecated plugin/analysis class [solr.CurrencyField]. Please consult documentation how to replace it accordingly.

将此类型定义更新为新solr.CurrencyFieldType并保留现有索引是否安全:

  1. 当文档属性的架构中使用 类型时。
  2. 在文档属性的架构中使用 类型时。
  3. 通常,什么模式更改肯定需要文件的重新索引?

1 个答案:

答案 0 :(得分:3)

如果该字段未被使用,您可以随意执行任何操作 - 该模式是Solr执行验证的方式,并为字段配置公开某些低级Lucene设置。如果您从未使用该字段为任何内容编制索引,那么您可以更新字段定义(或者更好,如果您不使用它,请将其删除),而无需重新编制索引。

但是,如果将现有字段的定义更改为其他类型(例如,当int类型从TrieInt更改为Point字段时),它是您的一般规则。必须重新索引,以避免产生随机的奇怪,无法追查的问题。

对于TextFields,如果您不更改字段类型 - 即字段仍然属于同一类型,但您正在更改字段的分析或标记化更改,则可能不必重新编制索引。如果更改仅发生在分析链的查询部分,则不需要重建索引 - 如果更改是索引部分(或两者),则取决于更改的内容 - 存储在索引中的现有标记赢了&#39 ; t更改,因此如果您已为索引内容而不降低它,然后添加例如用于查询的小写过滤器,则您将无法获得包含大写的任何现有标记的匹配项。在这种情况下,您必须重新编制索引以使您的收藏再次正常工作。