/**
* 1.
* Execute the criteria query against elasticsearch and return result as {@link List}
*
* @param query ,
* @param clazz
* @param
* @return
*/
List queryForList(CriteriaQuery query, Class clazz);
/**
* 2.
* Execute the string query against elasticsearch and return result as {@link List}
*
* @param query
* @param clazz
* @param
* @return
*/
List queryForList(StringQuery query, Class clazz);
/**
* 3.
* Execute the search query against elasticsearch and return result as {@link List}
*
* @param query
* @param clazz
* @param
* @return
*/
List queryForList(SearchQuery query, Class clazz);
/**
* 4.
* ,
* Execute the multi search query against elasticsearch and return result as {@link List}
*
* @param queries
* @param clazz
* @param
* @return
*/
default List> queryForList(List queries, Class clazz) {
return queryForPage(queries, clazz).stream().map(Page::getContent).collect(Collectors.toList());
}
/**
* 5. ids,
* Execute a multiGet against elasticsearch for the given ids
*
* @param searchQuery
* @param clazz
* @return
*/
List multiGet(SearchQuery searchQuery, Class clazz);
/**
* 6. ids ,
* Execute a multiGet against elasticsearch for the given ids with MultiGetResultMapper
*
* @param searchQuery
* @param clazz
* @param multiGetResultMapper
* @return
*/
List multiGet(SearchQuery searchQuery, Class clazz, MultiGetResultMapper multiGetResultMapper);