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
相关产品推荐
相关产品推荐

