如何在Spring Data Elasticsearch 5.0.0 API中构建查询

qf9go6mv  于 2023-01-08  发布在  ElasticSearch
关注(0)|答案(1)|浏览(213)

我正在将代码迁移到Spring Data Elasticsearch 5.0.0 API,我不知道什么是构造ElasticsearchTemplate查询的最干净的方法。
由于BoolQuery没有实现Query接口,我们不能简单地构建它,所以现在我这样做:

BoolQuery boolQuery = QueryBuilders.bool().build();
    
var nativeQuery = new NativeQueryBuilder()
            .withQuery(query.build()._toQuery())
            .build();
    
elasticsearchTemplate.search(nativeQuery, Object.class);

我对'_toQuery()'感到困惑,下划线表示它不应该在库外使用,即使它是公共的,那么有没有更好的方法来做到这一点?

lh80um4z

lh80um4z1#

_toQuery()来自于这个类:

package co.elastic.clients.elasticsearch._types.query_dsl;

/**
 * Base interface for {@link Query} variants.
 */
public interface QueryVariant {

    Query.Kind _queryKind();

    default Query _toQuery() {
        return new Query(this);
    }

}

所以它是API的一部分,如果你不想用它,就自己做new Query(query.build())

相关问题