Spring data elasticsearch repository.count() 返回“当前令牌 (VALUE_NUMBER_INT) 不是布尔类型”

问题描述 投票:0回答:1

我正在将一个相当旧的应用程序从 Spring Boot 2.0.2 升级到最新的应用程序。
临时目标是更新到最新版本 2 (2.7.18)
所以这可能是一个依赖版本问题,而不是其他任何问题,因为在更新之前它工作完美。

现在,问题是什么?

[type=json_parse_exception, reason=Current token (VALUE_NUMBER_INT) not of boolean type

完全例外

RestStatusException{status=500} org.springframework.data.elasticsearch.RestStatusException: Elasticsearch exception [type=json_parse_exception, reason=Current token (VALUE_NUMBER_INT) not of boolean type
 at [Source: org.elasticsearch.transport.netty4.ByteBufStreamInput@79b99ce2; line: 1, column: 137]]; nested exception is ElasticsearchStatusException[Elasticsearch exception [type=json_parse_exception, reason=Current token (VALUE_NUMBER_INT) not of boolean type

抛出的代码是这样的(简化的):

@Repository
public interface MetadataWithIdRepository extends ElasticsearchRepository<MetadataWithId, String>
(...)
private final MetadataWithIdRepository repository
(...)
repository.count() //throws here

有用的事实:

  1. 当我启动嵌入式弹性容器时,问题出现在集成测试中
  • 使用
    org.testcontainers.elasticsearch.ElasticsearchContainer
    - 版本
    1.19.3
  • 图像名称:
    docker.elastic.co/elasticsearch/elasticsearch:6.5.1
    (我知道它很旧,但它与之前的 Spring Boot 版本运行良好)
  1. 二手版本
    | spring boot | spring | spring-cloud | boot-data-elastic | elastic-lib | elastic-instance | active mq
old | 2.0.2       | 5.0.6  | Finchley.SR1 | 3.0.7             | 5.6.9       | 6.5.1            |
new | 2.7.18      | 5.3.31 | 2021.0.3     | 4.4.18            | 7.17.15     | 6.5.1            | 5.16.7
  1. 当我使用调试器停止测试并查询索引时,我得到以下信息:
GET localhost:56229/_cat/indices
yellow open document-domain FQBoF0knRWa-4CVcgAKWsw 5 1 0 0 1.1kb 1.1kb
GET localhost:56229/document-domain/_search
{
    "took": 39,
    "timed_out": false,
    "_shards": {
        "total": 5,
        "successful": 5,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": 0,
        "max_score": null,
        "hits": []
    }
}

实例已启动并正在运行。

我尝试用 10 种不同的方式进行调试,但每次都陷入死胡同。

我能找到的英语互联网上唯一有点类似的提及是this,但这没有帮助

我知道这是一个奇怪的问题,而且我没有可重现的例子,但也许有人看起来类似。如果有任何关于如何处理该问题的提示,我将不胜感激。

spring spring-boot maven elasticsearch spring-data-elasticsearch
1个回答
0
投票

弹性库 7.x 不向后兼容弹性服务 6.x
升级服务即可解决问题

© www.soinside.com 2019 - 2024. All rights reserved.