何时更新Solr架构并保留现有索引是否安全?
我现在正在将Solr升级到版本7.2,并且旧架构中的某些类型定义会在日志中生成警告,如:
Solr loaded a deprecated plugin/analysis class [solr.CurrencyField]. Please consult documentation how to replace it accordingly.
将此类型定义更新为新solr.CurrencyFieldType
并保留现有索引是否安全:
通常,什么模式更改肯定需要文件的重新索引?
答案 0 :(得分:3)
如果该字段未被使用,您可以随意执行任何操作 - 该模式是Solr执行验证的方式,并为字段配置公开某些低级Lucene设置。如果您从未使用该字段为任何内容编制索引,那么您可以更新字段定义(或者更好,如果您不使用它,请将其删除),而无需重新编制索引。
但是,如果将现有字段的定义更改为其他类型(例如,当int类型从TrieInt更改为Point字段时),它是您的一般规则。必须重新索引,以避免产生随机的奇怪,无法追查的问题。
对于TextFields,如果您不更改字段类型 - 即字段仍然属于同一类型,但您正在更改字段的分析或标记化更改,则可能不必重新编制索引。如果更改仅发生在分析链的查询部分,则不需要重建索引 - 如果更改是索引部分(或两者),则取决于更改的内容 - 存储在索引中的现有标记赢了&#39 ; t更改,因此如果您已为索引内容而不降低它,然后添加例如用于查询的小写过滤器,则您将无法获得包含大写的任何现有标记的匹配项。在这种情况下,您必须重新编制索引以使您的收藏再次正常工作。