在通过Solr_query json访问cassandra数据时遇到错误,

wwtsj6pe  于 2022-11-05  发布在  Solr
关注(0)|答案(3)|浏览(144)
  • DSE版本:六点七 *

由于以下代码适用于DSE java驱动程序版本:1.8.2用下面的代码
Select selectQuery = selectFrom(table).all().whereColumn("solr_query").isEqualTo(literal("{"q":"createdat:[2021-10-15T14:03:37.817Z TO 2021-12-15T07:23:14.025Z]","sort":"updatedate desc", "paging":"driver"}")); SimpleStatement statement = selectQuery.build().setConsistencyLevel(DefaultConsistencyLevel.valueOf("LOCAL_ONE")); ResultSet rs = this.session.execute(statement );
升级到DSE java驱动程序版本:4.13.0查询是:□
Select selectQuery = selectFrom(table).all().whereColumn("solr_query").isEqualTo(literal("{"q":"createdat:[2021-10-15T14:03:37.817Z TO 2021-12-15T07:23:14.025Z]","sort":"updatedate desc", "paging":"driver"}")); SimpleStatement statement = selectQuery.build().setConsistencyLevel(DefaultConsistencyLevel.valueOf("LOCAL_ONE")); ResultSet rs = this.session.execute(statement );

  • --〉给出以下异常:

com.datastax.oss.driver.api.core.servererrors.InvalidQueryException:碎片12.345.678.90上的错误:字段缓存已禁用,请将field=updatedate设置为docValues=true并重新编制索引。或者,如果字段缓存不会超过堆使用量,请在请求参数中放置useFieldCache=true。
我不知道如何解决这个问题。

fivyi3re

fivyi3re1#

因此,在查看错误消息时...
field=updatedate设置为docValues=true并重新索引。
只是想知道,但是你试过这个吗?这应该是很好的第一步。

jaql4c8m

jaql4c8m2#

首先我真的很好奇你是怎么得到这个版本的:
数据格式.oss 4.13.0版本
因为它看起来不像任何官方的DSE产品版本,如5.0.x.或6.8.x。过去有4.8.x,但从未有过OSS 4.13。
现在来谈谈问题本身:这可能适用于https://docs.datastax.com/en/upgrade/doc/upgrade/datastax_enterprise/upgdDSE50.html#Preparingtoupgrade
很难说,因为误导性的DSE版本...
虽然强烈建议使用docValues,但也建议使用设置dse.yaml的方法:
您可以重新启用字段缓存(solr_field_cache_enabled:true),以允许执行查询但不重新建立索引。

1cklez4t

1cklez4t3#

在为相关碎片重建Solr核心后,InvalidQueryException问题得到了解决。感谢您在此问题上的所有时间:)

相关问题