【问题标题】:Facing error while accessing cassandra data through Solr_query json for datastax.oss dse java driver 4.13.0 version通过 Solr_query json for datastax.oss dse java driver 4.13.0 版本访问 cassandra 数据时遇到错误
【发布时间】:2022-01-18 11:12:51
【问题描述】:

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

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

【问题讨论】:

  • 在社区的问答形式中很难与您一起解决此问题,因此我建议如果您订阅了 DSE,请请求您在 DataStax 支持门户网站support.datastax.com 上登录票证并附上诊断报告以及驱动程序、JDK、应用程序日志等的版本更改,以便我们的一位工程师为您分析。干杯!我们可以随时跟进并在此处发布调查结果以结束循环。
  • 使用的 DSE 版本是什么?除了 Java 驱动程序从 4.9.0 升级到 4.13.0 之外,最近是否有任何 DSE 服务器/JDK 升级?
  • @Madhavan datastax Eterprise 是 6.7,将 dse java 驱动程序从 1.8.2 升级到 4.13
  • 感谢您更新原始问题以及提供 6.7 的 DSE 版本(我们仍然不知道补丁版本是什么。例如 6.7.11)。您是否已经打开了支持票,以提供有关应用程序日志、堆栈跟踪、服务器端诊断包、要重现的最小代码库等的其他问题?

标签: solr cassandra datastax


【解决方案1】:

所以在查看错误信息时...

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

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

【讨论】:

  • updatedate {docValues:true} 已与 CREATE SEARCH INDEX 脚本一起添加。
【解决方案2】:

首先我很好奇你是怎么得到这个版本的:

datastax.oss 4.13.0 版本

因为它看起来不像 5.0.x 等任何官方 DSE 产品版本。或 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) 以允许运行查询但不允许重新索引。

【讨论】:

    【解决方案3】:

    在对相关分片进行 Solr 核心重建后,InvalidQueryException 问题得到解决。 感谢大家在这个问题上的时间:)

    【讨论】:

      猜你喜欢
      • 2018-08-25
      • 2016-11-07
      • 2015-08-24
      • 2013-05-22
      • 1970-01-01
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      • 2014-08-01
      相关资源
      最近更新 更多