对于datatax.oss dse java驱动程序4.13.0版本,通过Solr_query json访问cassan



DSE版本:6.7

由于以下代码适用于DSE java驱动程序版本1.8.2,具有以下代码

Statement selectQuery = QueryBuilder.select().all().from(table) .where(**QueryBuilder.eq**("solr_query", "{"q":"createdat:[2021-10-15T14:03:37.817Z TO 2021-12-15T07:23:14.025Z]","sort":"updatedate desc", "paging":"driver"}")) .setConsistencyLevel(ConsistencyLevel.valueOf("LOCAL_ONE")); ResultSet rs= super.getManager().getSession().execute(selectQuery);

升级到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.datatax.oss.driver.api.core.servererrors.InvalidQueryException:碎片12.345.678.90上的错误:字段缓存已禁用,请将字段=updatedate设置为docValues=true并重新索引。或者,如果字段缓存不会超过堆使用率,则在请求参数中放置useFieldCache=true。

我不知道如何解决这个问题。

因此,在查看错误消息时。。。

field=updatedate设置为docValues=true并重新索引。

只是想知道,但你试过这个吗?这应该是良好的第一步。

首先,我真的很好奇你是如何获得这个版本的:

datatax.oss 4.13.0版本

因为它看起来不像任何官方DSE产品版本,如5.0.x或6.8.x。过去有4.8.x,但从未出现过oss4.13。

现在针对问题本身:这可能适用https://docs.datastax.com/en/upgrade/doc/upgrade/datastax_enterprise/upgdDSE50.html#Preparingtoupgrade

很难说,因为DSE版本具有误导性。。。

虽然强烈建议使用docValues,但也提出了设置dse.yaml:的方法

您可以重新启用字段缓存(solr_field_cache_enabled:true(,以允许运行查询,但不允许重新索引。

在为相关碎片重建Solr核心后,InvalidQueryException问题得到了解决。感谢大家在这个问题上花时间:(

相关内容

  • 没有找到相关文章

最新更新