gpt4 book ai didi

solr - 主机回复服务器错误 : java. lang.String 无法转换为 java.util.UUID

转载 作者:行者123 更新时间:2023-12-05 00:47:56 24 4
gpt4 key购买 nike

我正在使用 Datastax 解决方案 (DSE)。

这是 Cassandra 模型:

CREATE TABLE mykeyspace.mytable (
uid uuid,
date_tsp timestamp,
solr_query text,
text_txt text,
PRIMARY KEY (uid, date_tsp)
)

我的 solr schema.xml:

<schema name="mytable" version="1.5">
<types>
<fieldType name="uuid" class="solr.UUIDField"/>
<fieldType name="text" class="solr.TextField"/>
<fieldType name="date" class="solr.TrieDateField"/>
</types>

<fields>
<field name="uid" type="uuid" indexed="true" stored="true" docValues="true"/>
<field name="date_tsp" type="date" indexed="true" stored="true" docValues="true"/>
<field name="text_txt" type="text" indexed="true" stored="true"/>
</fields>

<defaultSearchField>text_txt</defaultSearchField>
<uniqueKey>(uid, date_tsp)</uniqueKey>
</schema>

数据:

insert into mytable (uid, date_tsp, text_txt)
values (75803436-289c-4131-a766-6ba4b7151983, dateof(now()), 'text 1');

insert into mytable (uid, date_tsp, text_txt)
values (75803436-289c-4131-a766-6ba4b7151983, dateof(now()), 'text 2');

insert into mytable (uid, date_tsp, text_txt)
values (75803436-289c-4131-a766-6ba4b7151983, dateof(now()), 'text 3');

insert into mytable (uid, date_tsp, text_txt)
values (uuid(), dateof(now()), 'text 11');

工作 Cassandra 查询(从 Datastax DevCenter 运行):

SELECT * FROM text_heard WHERE solr_query='*1*';

SELECT uid, date_tsp, text_txt FROM text_heard
WHERE uid = 75803436-289c-4131-a766-6ba4b7151983;

SELECT date_tsp, text_txt FROM text_heard
WHERE uid = 75803436-289c-4131-a766-6ba4b7151983
AND solr_query = 'text_txt:*1*';

但是查询(在 SELECT 子句中使用 uid):

SELECT uid, date_tsp, text_txt FROM text_heard 
WHERE uid = 75803436-289c-4131-a766-6ba4b7151983
AND solr_query = 'text_txt:*1*';

产生错误:

java.lang.ClassCastException: java.lang.String cannot be cast to java.util.UUID
at org.apache.cassandra.serializers.UUIDSerializer.serialize(UUIDSerializer.java:26) ~[cassandra-all-2.1.8.621.jar:2.1.8.621]
at org.apache.cassandra.db.marshal.AbstractType.decompose(AbstractType.java:73) ~[cassandra-all-2.1.8.621.jar:2.1.8.621]
at com.datastax.bdp.search.solr.cql.SinglePassRowResponseHandler.buildCassandraRows(SinglePassRowResponseHandler.java:140) ~[dse-4.7.2.jar:4.7.2]
at com.datastax.bdp.search.solr.cql.SinglePassRowResponseHandler.handle(SinglePassRowResponseHandler.java:49) ~[dse-4.7.2.jar:4.7.2]
at com.datastax.bdp.search.solr.cql.CqlSolrQueryExecutor.handleSolrResponse(CqlSolrQueryExecutor.java:370) [dse-4.7.2.jar:4.7.2]
at com.datastax.bdp.search.solr.cql.CqlSolrQueryExecutor.execute(CqlSolrQueryExecutor.java:134) [dse-4.7.2.jar:4.7.2]
at com.datastax.bdp.cassandra.cql3.SolrOperationFactory$SolrStatementExecution.execute(SolrOperationFactory.java:71) [dse-4.7.2.jar:4.7.2]
at com.datastax.bdp.cassandra.cql3.DseQueryHandler$Operation.executeWithTiming(DseQueryHandler.java:223) [dse-4.7.2.jar:4.7.2]
at com.datastax.bdp.cassandra.cql3.DseQueryHandler$Operation.executeWithAuditLogging(DseQueryHandler.java:259) [dse-4.7.2.jar:4.7.2]
at com.datastax.bdp.cassandra.cql3.DseQueryHandler.process(DseQueryHandler.java:94) [dse-4.7.2.jar:4.7.2]
at org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:119) [cassandra-all-2.1.8.621.jar:2.1.8.621]
at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:439) [cassandra-all-2.1.8.621.jar:2.1.8.621]
at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:335) [cassandra-all-2.1.8.621.jar:2.1.8.621]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [netty-all-4.0.23.Final.jar:4.0.23.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [netty-all-4.0.23.Final.jar:4.0.23.Final]
at io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:32) [netty-all-4.0.23.Final.jar:4.0.23.Final]
at io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:324) [netty-all-4.0.23.Final.jar:4.0.23.Final]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_71]
at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) [cassandra-all-2.1.8.621.jar:2.1.8.621]
at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [cassandra-all-2.1.8.621.jar:2.1.8.621]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71]

这是我的设置问题还是错误?

最佳答案

读取 UUID 类型时存在一个已知问题,该问题已在以下 DSE 版本中修复:4.7.4、4.8.0

Single pass queries do not work with UUID, TimeUUID, Inet, Decimal, and Varint types. (DSP-6443)

请参阅以下内容 DSE4.8 release notes

关于solr - 主机回复服务器错误 : java. lang.String 无法转换为 java.util.UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32652425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com