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
并保留现有索引是否安全:
- 在文档属性的架构中未使用该类型时。
- 在文档属性的架构中使用该类型时。
通常,什么模式更改肯定需要文件的重新索引?
答案
如果该字段未被使用,您可以使用它执行任何操作 - 模式是Solr执行验证的方式,并为字段配置公开某些低级Lucene设置。如果您从未使用该字段索引任何内容,那么您可以更新字段定义(或者更好,如果您不使用它,则删除它)而无需重新索引。
但是,如果将现有字段的定义更改为其他类型(例如,当int类型从TrieInt更改为Point字段时),一般规则是您必须重新索引以避免随机变得怪异,无法追查的问题。
对于TextFields,如果您没有更改字段类型 - 即字段仍然是相同类型,但您正在更改字段的分析或标记化更改,则可能不必重新编制索引。如果更改仅针对分析链的查询部分,则不需要重建索引 - 如果更改是索引部分(或两者),则取决于更改的内容 - 存储在索引中的现有标记不会更改,因此如果您已编制索引内容而不降低其内容,然后添加例如用于查询的小写过滤器,则不会获得包含大写的任何现有标记的匹配项。在这种情况下,您必须重新索引才能使您的收藏再次正常工作。
以上是关于Solr模式:在不使用模式类型定义时更新是否安全?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在不从原始源重新索引的情况下更改 Solr 架构中指定的分析器?