update search API, now with wrapper API, add multi get tests, add HTTP MultiGet action
parent
f2e4d27750
commit
2701c2b11d
@ -1,9 +1,10 @@
|
|||||||
package org.xbib.elx.api;
|
package org.xbib.elx.api;
|
||||||
|
|
||||||
import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;
|
import org.elasticsearch.index.query.QueryBuilder;
|
||||||
|
|
||||||
@FunctionalInterface
|
@FunctionalInterface
|
||||||
public interface IndexAliasAdder {
|
public interface IndexAliasAdder {
|
||||||
|
|
||||||
void addIndexAlias(IndicesAliasesRequest request, String index, String alias);
|
QueryBuilder addAliasOnField(String index, String alias);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,34 @@
|
|||||||
|
package org.xbib.elx.common;
|
||||||
|
|
||||||
|
import org.elasticsearch.action.get.GetResponse;
|
||||||
|
import org.xbib.elx.api.SearchDocument;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class GetDocument implements SearchDocument {
|
||||||
|
|
||||||
|
private final GetResponse getResponse;
|
||||||
|
|
||||||
|
public GetDocument(GetResponse getResponse) {
|
||||||
|
this.getResponse = getResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getIndex() {
|
||||||
|
return getResponse.getIndex();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return getResponse.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getScore() {
|
||||||
|
return -1f;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> getFields() {
|
||||||
|
return getResponse.getSourceAsMap();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
package org.xbib.elx.common;
|
||||||
|
|
||||||
|
import org.elasticsearch.action.get.MultiGetItemResponse;
|
||||||
|
import org.xbib.elx.api.SearchDocument;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class MultiGetDocument implements SearchDocument {
|
||||||
|
|
||||||
|
private final MultiGetItemResponse getResponse;
|
||||||
|
|
||||||
|
public MultiGetDocument(MultiGetItemResponse getResponse) {
|
||||||
|
this.getResponse = getResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getIndex() {
|
||||||
|
return getResponse.getResponse().getIndex();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return getResponse.getResponse().getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getScore() {
|
||||||
|
return -1f;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> getFields() {
|
||||||
|
return getResponse.getResponse().getSourceAsMap();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
package org.xbib.elx.http.action.get;
|
||||||
|
|
||||||
|
import org.elasticsearch.action.ActionType;
|
||||||
|
import org.elasticsearch.action.get.MultiGetAction;
|
||||||
|
import org.elasticsearch.action.get.MultiGetRequest;
|
||||||
|
import org.elasticsearch.action.get.MultiGetResponse;
|
||||||
|
import org.elasticsearch.common.CheckedFunction;
|
||||||
|
import org.elasticsearch.common.bytes.BytesReference;
|
||||||
|
import org.elasticsearch.common.xcontent.XContentHelper;
|
||||||
|
import org.elasticsearch.common.xcontent.XContentParser;
|
||||||
|
import org.elasticsearch.common.xcontent.XContentType;
|
||||||
|
import org.xbib.elx.http.HttpAction;
|
||||||
|
import org.xbib.netty.http.client.api.Request;
|
||||||
|
import org.xbib.netty.http.common.HttpResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class HttpMultiGetAction extends HttpAction<MultiGetRequest, MultiGetResponse> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ActionType<MultiGetResponse> getActionInstance() {
|
||||||
|
return MultiGetAction.INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Request.Builder createHttpRequest(String url, MultiGetRequest request) throws IOException {
|
||||||
|
BytesReference source = XContentHelper.toXContent(request, XContentType.JSON, false);
|
||||||
|
return newGetRequest(url, "/_mget", source);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected CheckedFunction<XContentParser, MultiGetResponse, IOException> entityParser(HttpResponse httpResponse) {
|
||||||
|
return MultiGetResponse::fromXContent;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue