
com.github.kzwang.osem.api.ElasticSearchSearcher Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of elasticsearch-osem Show documentation
Show all versions of elasticsearch-osem Show documentation
Object/Search Engine Mapping for ElasticSearch
The newest version!
package com.github.kzwang.osem.api;
import com.github.kzwang.osem.impl.ElasticSearchSearcherImpl;
import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.common.Nullable;
import org.elasticsearch.common.inject.ImplementedBy;
import org.elasticsearch.index.query.FilterBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import java.util.List;
@ImplementedBy(ElasticSearchSearcherImpl.class)
public interface ElasticSearchSearcher {
/**
* Get current index name
*
* @return indexName current index name
*/
public String getIndexName();
/**
* Set the index to use
*
* @param indexName the index name to use
*/
public void setIndexName(String indexName);
/**
* Count the number of objects in ElasticSearch for given class
*
* @param clazz class to count
* @param queryBuilder optional count query
* @return number of objects
*/
public Long count(Class clazz, @Nullable QueryBuilder queryBuilder);
/**
* Perform search in ElasticSearch
*
* @param requestBuilder SearchRequestBuilder, must get from {@link #getSearchRequestBuilder(Class[])}
* @return SearchResponse from ElasticSearch
*/
public SearchResponse search(SearchRequestBuilder requestBuilder);
/**
* Perform search in ElasticSearch and convert search result to original object
*
* @param clazz class to search
* @param queryBuilder optional query builder
* @param filterBuilder optional filter builder
* @return list of object from search result
*/
public List search(Class clazz, @Nullable QueryBuilder queryBuilder, @Nullable FilterBuilder filterBuilder);
/**
* Perform search in ElasticSearch and convert search result to original object
*
* @param clazz class to search
* @param requestBuilder SearchRequestBuilder, must get from {@link #getSearchRequestBuilder(Class[])}
* @return list of object from search result
*/
public List search(Class clazz, SearchRequestBuilder requestBuilder);
/**
* Get search request build and set the search types
*
* @param clazz array of classes to search
* @return SearchRequestBuilder
*/
public SearchRequestBuilder getSearchRequestBuilder(Class... clazz);
/**
* Get an object by id
*
* @param clazz class of the object
* @param id id of the object
* @return object from ElasticSearch
*/
public T getById(Class clazz, String id);
/**
* Get an object by id
*
* @param clazz class of the object
* @param id id of the object
* @param routing routing of the object
* @return object from ElasticSearch
*/
public T getById(Class clazz, String id, @Nullable String routing);
/**
* Get objects by id list
*
* @param clazz class of the objects
* @param ids id list of the ojects
* @return list of objects from ElasticSearch
*/
public List getByIds(Class clazz, List ids);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy