When we replaced DSE 3.0 with 3.1.1 and tried to post Solr schema.xml solrconfig.xml and Create core we got a strange exception:
<lst name="responseHeader"><int name="status">500</int><int name="QTime">303</int></lst><lst name="error"><str name="msg">Schema Parsing Failed: Invalid field property: positionIncrementGap</str><str name="trace">org.apache.solr.common.SolrException: Schema Parsing Failed: Invalid field property: positionIncrementGap
at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:687)
at com.datastax.bdp.cassandra.index.solr.CassandraIndexSchema.readSchema(CassandraIndexSchema.java:48)
at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:178)
at com.datastax.bdp.cassandra.index.solr.CassandraIndexSchema.<init>(CassandraIndexSchema.java:42)
at org.apache.solr.core.CassandraCoreContainer.create(CassandraCoreContainer.java:246)
at com.datastax.bdp.cassandra.index.solr.SolrCoreResourceManager.createCore(SolrCoreResourceManager.java:271)
at com.datastax.bdp.cassandra.index.solr.CassandraCoreAdminHandler.handleCreateAction(CassandraCoreAdminHandler.java:121)
at org.apache.solr.handler.admin.CoreAdminHandler.handleRequestBody(CoreAdminHandler.java:144)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
at org.apache.solr.servlet.SolrDispatchFilter.handleAdminRequest(SolrDispatchFilter.java:615)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:206)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:155)
at com.datastax.bdp.cassandra.index.solr.CassandraDispatchFilter.doFilter(CassandraDispatchFilter.java:92)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.datastax.bdp.cassandra.audit.SolrHttpAuditLogFilter.doFilter(SolrHttpAuditLogFilter.java:194)
After all positionIncrement
attributes were removed, we got the same exception which stuck on multiValued
attribute.
So what's the problem here.
Used schema was:
<?xml version="1.0" encoding="UTF-8" ?>
<schema name="test" version="1.5">
<types>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" />
<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" />
<fieldType name="binary" class="solr.BinaryField" />
<fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="tdate" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/>
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
</types>
<fields>
<field name="key" type="string" indexed="true" stored="true" required="true" />
<field name="state" type="int" indexed="true" default="1" />
<field name="version" type="int" indexed="true" stored="true"/>
<field name="stamp" type="date" indexed="true" stored="true" required="true" default="NOW" />
<field name="_version_" type="long" indexed="true" stored="true"/>
<dynamicField name="*_i" type="int" indexed="true"/>
<dynamicField name="*_s" type="string" indexed="true"/>
<dynamicField name="*_l" type="long" indexed="true" />
<dynamicField name="*_txt" type="text_general" indexed="true"/>
<dynamicField name="*_b" type="boolean" indexed="true"/>
<dynamicField name="*_f" type="float" indexed="true"/>
<dynamicField name="*_d" type="double" indexed="true"/>
<dynamicField name="*_dt" type="date" indexed="true"/>
<dynamicField name="*_binary" type="binary" indexed="true"/>
<dynamicField name="*_ref" type="string" indexed="true"/>
<dynamicField name="*_i_li" type="int" indexed="true" multiValued="true" positionIncrementGap="100"/>
<dynamicField name="*_s_li" type="string" indexed="true" multiValued="true" positionIncrementGap="100"/>
<dynamicField name="*_l_li" type="long" indexed="true" multiValued="true" positionIncrementGap="100"/>
<dynamicField name="*_txt_li" type="text_general" indexed="true" multiValued="true" positionIncrementGap="100"/>
<dynamicField name="*_b_li" type="boolean" indexed="true" multiValued="true" positionIncrementGap="100"/>
<dynamicField name="*_f_li" type="float" indexed="true" multiValued="true" positionIncrementGap="100"/>
<dynamicField name="*_d_li" type="double" indexed="true" multiValued="true" positionIncrementGap="100"/>
<dynamicField name="*_dt_li" type="date" indexed="true" multiValued="true" positionIncrementGap="100"/>
<dynamicField name="*_binary_li" type="binary" indexed="true" multiValued="true" positionIncrementGap="100"/>
<dynamicField name="*_ref_li" type="string" indexed="true" multivalued="true" positionIncrementGap="100"/>
<field name="text" type="text_general" indexed="true" stored="false" multiValued="true" positionIncrementGap="100"/>
</fields>
<uniqueKey>key</uniqueKey>
<copyField source="*_txt" dest="text"/>
<copyField source="*_txt_li" dest="text"/>
</schema>