Я использую соединитель Spark-Solr 3.4.0 с облачной версией Solr 7.6.0 в кластере Spark 2.2.1.У нас есть существующая коллекция Solr с предопределенной схемой для нее.Для большинства полей для параметра stored
установлено значение true
, но есть определенные поля, в которых мы явно устанавливаем stored=false
.Когда мы пытаемся передать данные в Solr с помощью коннектора spark-solr, мы получаем следующую ошибку:
org.apache.solr.api.ApiBag$ExceptionWithErrObject: error processing commands, errors: [{add-field={name=taxonomy, indexed=true, multiValued=true, docValues=true, stored=true, type=string}, errorMessages=[Field 'item_id_channel' already exists.
]}],
at org.apache.solr.handler.SchemaHandler.handleRequestBody(SchemaHandler.java:92)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:2541)
at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:709)
at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:515)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:377)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:323)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
Ошибка говорит о том, что item_id_channel
уже существует, но эта ошибка возникает только для полей, для которыхмы определили stored=false
(в схеме Solr).Я получаю, что по какой-то причине соединитель желает снова создать схему, но он устанавливает для параметра stored
значение true
, которое конфликтует с предопределенным определением схемы в Solr для этого поля.
Мой вопрос -Есть ли способ сообщить соединителю (возможно, через какую-то опцию?), Что мы хотим, чтобы stored
был установлен на true
для определенных полей?И, возможно, общий способ определения других параметров solr для полей?