[ https://issues.apache.org/jira/browse/SOLR-9751?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Steve Rowe updated SOLR-9751: ----------------------------- Attachment: SOLR-9751.patch Patch with a fix. The problem results from a combination of lenient schema parsing and the lack of a concept for non-user-specifiable index-time analyzers. This patch adds a new interface {{HasImplicitIndexAnalyzer}}, implemented by {{PreAnalyzedField}}, and schema parsing and serialization now properly handle this case. As a result, when a field type implements {{HasImplicitIndexAnalyzer}}, regardless of the original specified analyzer type, an analyzer (if any) will always be specified as a query-time analyzer, even if it was originally specified as a non-specific or index-time analyzer. I've also adding logged warnings for cases where analyzers are specified in the schema for field types that don't support analyzers (currently non-{{TextField}}-s). I'll commit once all tests and precommit pass. > PreanalyzedField can cause schema corruption > -------------------------------------------- > > Key: SOLR-9751 > URL: https://issues.apache.org/jira/browse/SOLR-9751 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) > Components: Schema and Analysis > Affects Versions: 6.2, 6.3 > Reporter: liuyang > Assignee: Steve Rowe > Priority: Minor > Attachments: SOLR-9751.patch, SOLR-9751.patch > > > The exception as follows: > Caused by: org.apache.solr.common.SolrException: Could not load conf for core > test_shard1_replica1: Can't load schema managed-schema: Plugin init failure > for [schema.xml] fieldType "preanalyzed": Cannot load analyzer: > org.apache.solr.schema.PreAnalyzedField$PreAnalyzedAnalyzer > at > org.apache.solr.core.ConfigSetService.getConfig(ConfigSetService.java:85) > at org.apache.solr.core.CoreContainer.create(CoreContainer.java:1031) > ... 6 more > Caused by: org.apache.solr.common.SolrException: Can't load schema > managed-schema: Plugin init failure for [schema.xml] fieldType "preanalyzed": > Cannot load analyzer: > org.apache.solr.schema.PreAnalyzedField$PreAnalyzedAnalyzer > at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:600) > at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:183) > at > org.apache.solr.schema.ManagedIndexSchema.<init>(ManagedIndexSchema.java:104) > at > org.apache.solr.schema.ManagedIndexSchemaFactory.create(ManagedIndexSchemaFactory.java:172) > at > org.apache.solr.schema.ManagedIndexSchemaFactory.create(ManagedIndexSchemaFactory.java:45) > at > org.apache.solr.schema.IndexSchemaFactory.buildIndexSchema(IndexSchemaFactory.java:75) > at > org.apache.solr.core.ConfigSetService.createIndexSchema(ConfigSetService.java:107) > at > org.apache.solr.core.ConfigSetService.getConfig(ConfigSetService.java:78) > ... 7 more > Test procedure: > 1.create collection using sample_techproducts_configs; > 2.add field in Solr web view; > 3.add field again in Solr web view. > manage-schema is modifyed as follows: > <fieldType name="preanalyzed" class="solr.PreAnalyzedField"> > <analyzer class=" > org.apache.solr.schema.PreAnalyzedField$PreAnalyzedAnalyzer"> > </analyzer> > </fieldType> -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org