Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
DSE SOLR中的多值复制字段支持_Solr_Cassandra_Datastax Enterprise_Datastax - Fatal编程技术网

DSE SOLR中的多值复制字段支持

DSE SOLR中的多值复制字段支持,solr,cassandra,datastax-enterprise,datastax,Solr,Cassandra,Datastax Enterprise,Datastax,我有一个SOLR模式,如下所示: <field name="category_id1" type="integer" indexed="false" stored="true" /> <field name="category_id2" type="integer" indexed="false" stored="true" /> <field name="category_id3" type="integer" indexed="false" stored="tr

我有一个SOLR模式,如下所示:

<field name="category_id1" type="integer" indexed="false" stored="true" />
<field name="category_id2" type="integer" indexed="false" stored="true" />
<field name="category_id3" type="integer" indexed="false" stored="true" />
<field name="category_ids" type="integer" multiValued="true" indexed="true" stored="true"/>

和副本部分:

<copyField source="category_id1" dest="category_ids" />

但每当我尝试将数据注入DSE/Cassandra时,我都会遇到这个错误


InvalidRequestException(原因:(预期为4或0字节整数(14))[diem][business][category_id]验证失败)
me.prettyprint.hector.api.exceptions.HInvalidRequestException:InvalidRequestException(原因:(预期为4或0字节整数(14))[diem][business][category_id]验证失败)
线程“main”me.prettyprint.hector.api.exceptions.HInvalidRequestException中出现异常:InvalidRequestException(原因:(预期为4或0字节int(14))[diem][business][category_id]验证失败)
at me.prettyprint.cassandra.service.exceptionTranslatorImpl.translate(exceptionTranslatorImpl.java:45)
at me.prettyprint.cassandra.connection.HConnectionManager.OperationWithFailover(HConnectionManager.java:264)
at me.prettyprint.cassandra.model.ExecutingKeyspace.doExecuteOperation(ExecutingKeyspace.java:97)
at me.prettyprint.cassandra.model.MutatorImpl.execute(MutatorImpl.java:243)
位于com.diem.db.crud.CassandraStorageManager.insertmulticlumns(CassandraStorageManager.java:197)
位于com.diem.db.dao.impl.AbstractDaoImpl.saveUUIDEntity(AbstractDaoImpl.java:47)
在com.diem.db.dao.impl.BusinessDaoImpl.saveBusiness(BusinessDaoImpl.java:81)
在com.diem.data.loadbusinesss.execute(loadbusinesss.java:187)
位于com.diem.data.LoadContent.run(LoadContent.java:121)
在com.diem.data.loadbusinesss.main(loadbusinesss.java:45)
原因:InvalidRequestException(原因:(预期为4或0字节整数(14))[diem][business][category_id]验证失败)
位于org.apache.cassandra.thrift.cassandra$batch\u mutate\u result.read(cassandra.java:20833)
位于org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)
位于org.apache.cassandra.thrift.cassandra$Client.recv_batch_mutate(cassandra.java:964)
位于org.apache.cassandra.thrift.cassandra$Client.batch_mutate(cassandra.java:950)
at me.prettyprint.cassandra.model.MutatorImpl$3.execute(MutatorImpl.java:246)
at me.prettyprint.cassandra.model.MutatorImpl$3.execute(MutatorImpl.java:243)
at me.prettyprint.cassandra.service.Operation.executeAndSetResult(Operation.java:103)
at me.prettyprint.cassandra.connection.HConnectionManager.OperationWithFailover(HConnectionManager.java:258)
... 8个以上

复制到多值solr.IntField(integer)并不是什么特别的事情,我们可以在使用DSE/solr之前完成。但我似乎无法在DSE/SOLR组合中完成这项工作。从逻辑上讲,我看不出这会失败的原因,因为DSE不应该干扰对
category\u id
字段的操作,该字段主要用于索引。有人认为情况有什么问题吗?在这种情况下,如何防止验证错误(注意:我不能对
类别ID使用文本/字符串类型


谢谢大家!

我可以找出问题所在,我的CF有一个
默认的\u验证\u class=ByTestType
,因此使用DSE/Solr中的ByTestType验证多值字段
类别ID
,这将导致错误。因此,除非我使用
LIST
类型将CF更改为CQL声明,并且不使用Hector(至少对于此CF),否则我将无法处理Solr中文本/字符串字段以外的多值字段

如果我理解正确,您使用的是节约表,因此您可以将category_ids列声明为UTF8Type(Solr字段可以是任何类型),或者将category_ids Solr字段声明为stored=false(在这种情况下,复制字段将不被存储,只被索引)

让我们知道这两种方法是否适合您