Solr模式:在不使用模式类型定义时更新是否安全?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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. 在文档属性的架构中使用该类型时。

通常,什么模式更改肯定需要文件的重新索引?

答案

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

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

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

以上是关于Solr模式:在不使用模式类型定义时更新是否安全?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在不从原始源重新索引的情况下更改 Solr 架构中指定的分析器?

Solr的Schema API(模式)

Solr的Schema API(模式)

是否可以在 postgresql 的另一个模式中使用一个模式的枚举类型

装饰者模式

装饰者模式