You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

spring-data-elasticsearch与curl查询结果不一致及版本适配咨询

Spring Data Elasticsearch 查询结果与CURL不一致排查

问题背景

使用Spring Data Elasticsearch的ElasticsearchOperations查询指定索引时,发现结果与CURL请求的结果存在差异,怀疑是ElasticsearchOperations未按得分优先排序导致。

现有Kotlin查询代码

val index = IndexCoordinates.of("test-*-en")

val searchQuery = NativeSearchQueryBuilder()
    .withFilter(
        QueryBuilders.boolQuery()
            .must(QueryBuilders.matchQuery("english","test query : 12345678"))
    ).withMaxResults(30)
    .build()

return elasticsearchOperations.search(searchQuery, TestEsDocument::class.java, index)

对比用CURL请求

POST test-*-en/_search?size=30
{
  "query": 
    {
  "bool" : {
    "must" : [
      {
        "match" : {
          "english" : {
            "query" : "test query : 12345678",
            "operator" : "OR",
            "prefix_length" : 0,
            "max_expansions" : 50,
            "fuzzy_transpositions" : true,
            "lenient" : false,
            "zero_terms_query" : "NONE",
            "auto_generate_synonyms_phrase_query" : true,
            "boost" : 1.0
          }
        }
      }
    ],
    "adjust_pure_negative" : true,
    "boost" : 1.0
  }
}
}

环境配置

  • Elasticsearch集群版本:7.10.1-oss(无法升级)
  • Spring Data Elasticsearch版本:4.2.12
  • 项目中指定Elasticsearch版本配置:
    extra["elasticsearch.version"] = "7.10.1"
    

待解答问题

  • 该问题是否由Spring Data Elasticsearch与Elasticsearch集群版本不匹配导致?
  • 针对此问题有哪些可行的解决办法?
  • 是否需要改用自定义WebClient发送Post请求来实现查询?

内容的提问来源于stack exchange,提问作者mozzi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 21:58:37