Example usage for org.springframework.data.elasticsearch.core.query Query getFields

List of usage examples for org.springframework.data.elasticsearch.core.query Query getFields

Introduction

In this page you can find the example usage for org.springframework.data.elasticsearch.core.query Query getFields.

Prototype

List<String> getFields();

Source Link

Document

Get fields to be returned as part of search request

Usage

From source file:org.springframework.data.elasticsearch.core.ElasticsearchTemplate.java

private SearchRequestBuilder prepareSearch(Query query) {
    Assert.notNull(query.getIndices(), "No index defined for Query");
    Assert.notNull(query.getTypes(), "No type defined for Query");

    int startRecord = 0;
    SearchRequestBuilder searchRequestBuilder = client.prepareSearch(toArray(query.getIndices()))
            .setSearchType(DFS_QUERY_THEN_FETCH).setTypes(toArray(query.getTypes()));

    if (query.getPageable() != null) {
        startRecord = query.getPageable().getPageNumber() * query.getPageable().getPageSize();
        searchRequestBuilder.setSize(query.getPageable().getPageSize());
    }//from  w w  w  .j  a  v  a 2 s  .  c  o m
    searchRequestBuilder.setFrom(startRecord);

    if (!query.getFields().isEmpty()) {
        searchRequestBuilder.addFields(toArray(query.getFields()));
    }

    if (query.getSort() != null) {
        for (Sort.Order order : query.getSort()) {
            searchRequestBuilder.addSort(order.getProperty(),
                    order.getDirection() == Sort.Direction.DESC ? SortOrder.DESC : SortOrder.ASC);
        }
    }
    return searchRequestBuilder;
}