Spark-Solr Connector尝试使用stored = true添加已存在的字段

问题描述 投票:2回答:1

我在Spark 2.2.1集群中使用Spark-Solr连接器3.4.0和Solr云版本7.6.0。我们有一个现有的Solr集合,它有一个预定义的模式。大多数字段都将stored参数设置为true,但是在某些字段中我们明确设置了stored=false。当我们尝试使用spark-solr连接器将数据推送到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参数的通用方法?

apache-spark solr solrj lucidworks
1个回答
0
投票

我们发现了导致错误的问题。在旧版本的spark-solr连接器中有一个bug,因为在stored的值为true的情况下,连接器试图将现有字段添加到solr模式。这是在3.5.5 release中修复的。因此,一旦我们将连接器升级到版本3.5.14,摄取就会毫无错误地工作。

© www.soinside.com 2019 - 2024. All rights reserved.