/**
* Copyright 2010 Molindo GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package at.molindo.esi4j.core;
import org.elasticsearch.action.ListenableActionFuture;
import org.elasticsearch.action.count.CountResponse;
import org.elasticsearch.action.get.MultiGetResponse;
import org.elasticsearch.action.search.MultiSearchResponse;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.index.query.QueryBuilder;
import at.molindo.esi4j.action.CountResponseWrapper;
import at.molindo.esi4j.action.MultiGetResponseWrapper;
import at.molindo.esi4j.action.MultiSearchResponseWrapper;
import at.molindo.esi4j.action.SearchResponseWrapper;
/**
* set of operations that are available on single and multi indices
*/
public interface Esi4JSearchIndex {
String getName();
boolean isMapped(Class<?> type);
boolean isMapped(Object o);
Class<?>[] getMappedTypes();
<T> T execute(Esi4JOperation<T> operation);
ListenableActionFuture<SearchResponseWrapper> search(QueryBuilder query, Class<?> type);
ListenableActionFuture<SearchResponseWrapper> search(QueryBuilder query, Class<?> type, int from, int size);
ListenableActionFuture<SearchResponseWrapper> executeSearch(Esi4JOperation<ListenableActionFuture<SearchResponse>> searchOperation);
ListenableActionFuture<MultiSearchResponseWrapper> executeMultiSearch(Esi4JOperation<ListenableActionFuture<MultiSearchResponse>> multiSearchOperation);
ListenableActionFuture<CountResponseWrapper> count(QueryBuilder query, Class<?> type);
ListenableActionFuture<CountResponseWrapper> executeCount(Esi4JOperation<ListenableActionFuture<CountResponse>> countOperation);
ListenableActionFuture<MultiGetResponseWrapper> multiGet(Class<?> type, Iterable<?> ids);
ListenableActionFuture<MultiGetResponseWrapper> executeMultiGet(Esi4JOperation<ListenableActionFuture<MultiGetResponse>> multiGetOperation);
}