Package com.codetroopers.play.elasticsearch.jest

Source Code of com.codetroopers.play.elasticsearch.jest.JestSearchRequestBuilder

package com.codetroopers.play.elasticsearch.jest;

import io.searchbox.core.Search;
import io.searchbox.params.SearchType;
import org.elasticsearch.index.query.FilterBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.facet.FacetBuilder;
import org.elasticsearch.search.sort.SortBuilder;

/**
* @author cgatay
*/
public class JestSearchRequestBuilder extends JestRequest<Search> {

    private SearchSourceBuilder searchSourceBuilder;
    private String indices;
    private String types;
    private SearchType searchType;

    public JestSearchRequestBuilder() {
        searchSourceBuilder = new SearchSourceBuilder();
    }

    @Override
    public Search getAction() {
        final String query = searchSourceBuilder.toString();
        return new Search.Builder(query)
                .addIndex(indices)
                .addType(types)
                .setSearchType(searchType)
                .build();
    }

    public JestSearchRequestBuilder setIndices(String indices) {
        this.indices = indices;
        return this;
    }

    public JestSearchRequestBuilder setTypes(String types) {
        this.types = types;
        return this;
    }

    public JestSearchRequestBuilder setSearchType(SearchType searchType) {
        this.searchType = searchType;
        return this;
    }

    public JestSearchRequestBuilder setFilter(FilterBuilder filter) {
        this.searchSourceBuilder.postFilter(filter);
        return this;
    }

    public JestSearchRequestBuilder setQuery(String query) {
        this.searchSourceBuilder.query(query);
        return this;
    }

    public JestSearchRequestBuilder setQuery(QueryBuilder builder) {
        this.searchSourceBuilder.query(builder);
        return this;
    }

    public JestSearchRequestBuilder setNoFields() {
        this.searchSourceBuilder.noFields();
        return this;
    }

    public JestSearchRequestBuilder addFacet(FacetBuilder facet) {
        this.searchSourceBuilder.facet(facet);
        return this;
    }

    public JestSearchRequestBuilder addSort(SortBuilder sort) {
        this.searchSourceBuilder.sort(sort);
        return this;
    }

    public JestSearchRequestBuilder setFrom(int from) {
        this.searchSourceBuilder.from(from);
        return this;
    }

    public JestSearchRequestBuilder setSize(int size) {
        this.searchSourceBuilder.size(size);
        return this;
    }

    public JestSearchRequestBuilder setExplain(boolean explain) {
        this.searchSourceBuilder.explain(explain);
        return this;
    }

   
}
TOP

Related Classes of com.codetroopers.play.elasticsearch.jest.JestSearchRequestBuilder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.