spring-数据弹性搜索 const_score

spring-data-elasticsearch with const_score

我需要运行以下查询:

GET seg/seg/_search
{
    "query": {
        "constant_score": {
            "filter": {
                "exists": {
                    "field": "iseg"
                }
            },
                "boost": 1.2
        }
    }
}

但我无法使用 spring-data-elasticsearch 轻松地 运行 这个。

  1. 有什么办法吗?
  2. spring-data-elasticsearch 是否很好地支持所有 elasticsearch 查询 DSL?

1) 是

使用模板:

    SearchQuery searchQuery = new NativeSearchQueryBuilder()
            .withQuery(constantScoreQuery(existsFilter("iseg")).boost(1.2f))
            .withIndices("seg")
            .withTypes("seg")
            .build();
    // when
    Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForList(searchQuery, SampleEntity.class);

TemplateTest Class

复制和修改的代码

使用存储库:

   SearchQuery searchQuery = new NativeSearchQueryBuilder()
            .withQuery(constantScoreQuery(existsFilter("iseg")).boost(1.2f))
            .withIndices("seg")
            .withTypes("seg")
            .build();
    // when
    Page<SampleEntity> page = repository.search(query);

RepositoryTest Class

复制和修改的代码

2) 是 Spring 数据 Elasticsearch 使用 QueryBuilder 接口来处理 elasticsearch 部分的所有 Query DSL 请求。