All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.polyglotted.eswrapper.query.response.ResultBuilder Maven / Gradle / Ivy

package io.polyglotted.eswrapper.query.response;

import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import io.polyglotted.eswrapper.indexing.IndexKey;
import org.elasticsearch.action.search.SearchResponse;

import java.util.List;

import static com.google.common.collect.ImmutableMap.copyOf;
import static com.google.common.collect.Iterables.transform;

public interface ResultBuilder {

    List buildFrom(SearchResponse response);

    ResultBuilder NullBuilder = response -> ImmutableList.of();

    ResultBuilder IndexKeyBuilder = response -> ImmutableList.copyOf(transform(response.getHits(),
       hit -> IndexKey.from(hit)));

    ResultBuilder SimpleDocBuilder = response -> ImmutableList.copyOf(transform(response.getHits(), hit -> {
        ImmutableMap source = (hit.getSource() == null) ? ImmutableMap.of() : copyOf(hit.getSource());
        return new SimpleDoc(IndexKey.from(hit), source);
    }));
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy