- 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。
我不知道如何解决这个问题。
3条答案
按热度按时间fivyi3re1#
因此,在查看错误消息时...
将
field=updatedate
设置为docValues=true
并重新索引。只是想知道,但是你试过这个吗?这应该是很好的第一步。
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),以允许执行查询但不重新建立索引。
1cklez4t3#
在为相关碎片重建Solr核心后,
InvalidQueryException
问题得到了解决。感谢您在此问题上的所有时间:)