Программисты JAVA общаются здесь
-
Anonymous
Перенос кода Elasticsearch в поиск по множественным запросам OpenSearch
Сообщение
Anonymous »
У меня есть этот код:
Код: Выделить всё
import org.elasticsearch.ElasticsearchException;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.DocWriteResponse.Result;
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
import org.elasticsearch.action.bulk.BackoffPolicy;
import org.elasticsearch.action.bulk.BulkItemResponse;
import org.elasticsearch.action.bulk.BulkRequestBuilder;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.bulk.Retry;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.get.MultiGetItemResponse;
import org.elasticsearch.action.get.MultiGetRequestBuilder;
import org.elasticsearch.action.get.MultiGetResponse;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexRequestBuilder;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.search.ClearScrollRequest;
import org.elasticsearch.action.search.ClearScrollResponse;
import org.elasticsearch.action.search.MultiSearchRequestBuilder;
import org.elasticsearch.action.search.MultiSearchResponse;
import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.SearchScrollRequestBuilder;
import org.elasticsearch.action.support.master.AcknowledgedResponse;
import org.elasticsearch.action.update.UpdateRequest;
import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.index.engine.DocumentMissingException;
import org.elasticsearch.index.reindex.BulkByScrollResponse;
import org.elasticsearch.index.reindex.DeleteByQueryAction;
import org.elasticsearch.index.reindex.DeleteByQueryRequestBuilder;
import org.elasticsearch.script.mustache.SearchTemplateRequestBuilder;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
private TransportClient client;
public List multiSearch(List requestList) {
try {
MultiSearchRequestBuilder multiBuilder = client.prepareMultiSearch();
for (SearchRequestBuilder request : requestList) {
multiBuilder.add(request);
}
MultiSearchResponse searchResponse = multiBuilder.execute().actionGet();
List responseList = new ArrayList();
for (MultiSearchResponse.Item item : searchResponse.getResponses()) {
responseList.add(item.getResponse());
}
return responseList;
} catch (Exception exception) {
throw new Exception();
}
}
import org.elasticsearch.ElasticsearchException;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.DocWriteResponse.Result;
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
import org.elasticsearch.action.bulk.BackoffPolicy;
import org.elasticsearch.action.bulk.BulkItemResponse;
import org.elasticsearch.action.bulk.BulkRequestBuilder;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.bulk.Retry;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.get.MultiGetItemResponse;
import org.elasticsearch.action.get.MultiGetRequestBuilder;
import org.elasticsearch.action.get.MultiGetResponse;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexRequestBuilder;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.search.ClearScrollRequest;
import org.elasticsearch.action.search.ClearScrollResponse;
import org.elasticsearch.action.search.MultiSearchRequestBuilder;
import org.elasticsearch.action.search.MultiSearchResponse;
import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.SearchScrollRequestBuilder;
import org.elasticsearch.action.support.master.AcknowledgedResponse;
import org.elasticsearch.action.update.UpdateRequest;
import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.index.engine.DocumentMissingException;
import org.elasticsearch.index.reindex.BulkByScrollResponse;
import org.elasticsearch.index.reindex.DeleteByQueryAction;
import org.elasticsearch.index.reindex.DeleteByQueryRequestBuilder;
import org.elasticsearch.script.mustache.SearchTemplateRequestBuilder;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
private TransportClient client
public class GroupSearchIndexRepository{
public SearchTemplateRequestBuilder getSearchTemplateRequestBuilder() {
try {
return new SearchTemplateRequestBuilder(client);
} catch (Exception exception) {
LOGGER.error("Search template request builder not available.", exception);
new Exception("error");
}
return null;
}
public SearchResponse searchScript(Map parameters, String scriptName) {
SearchTemplateRequestBuilder searchTemplateRequestBuilder = getSearchTemplateRequestBuilder();
SearchTemplateResponse response = searchTemplateRequestBuilder.setScript(scriptName)
.setScriptType(ScriptType.STORED).setScriptParams(parameters)
.setRequest(new SearchRequest(this.readIndex)).get();
return response.getResponse();
}
}
public class GroupSearchIndexRepository groupSearchIndexRepository
private JSONObject getGroupFromElastic(Map params, String searchTemplateName) {
SearchResponse response = groupSearchIndexRepository.searchScript(params, searchTemplateName);
if (response.getHits().getTotalHits() > 0) {
try {
SearchHit hit = response.getHits().getAt(0);
String payload = hit.getSourceAsString();
return new JSONObject(payload);
} catch (Exception e) {
logger.info("exception - elastic response {}", response);
throw e;
}
} else {
return null;
}
}
как перенести этот код в aws opensearch? Не могу найти подходящую замену.
Подробнее здесь:
https://stackoverflow.com/questions/798 ... est-search
1762877624
Anonymous
У меня есть этот код:
[code]import org.elasticsearch.ElasticsearchException;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.DocWriteResponse.Result;
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
import org.elasticsearch.action.bulk.BackoffPolicy;
import org.elasticsearch.action.bulk.BulkItemResponse;
import org.elasticsearch.action.bulk.BulkRequestBuilder;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.bulk.Retry;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.get.MultiGetItemResponse;
import org.elasticsearch.action.get.MultiGetRequestBuilder;
import org.elasticsearch.action.get.MultiGetResponse;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexRequestBuilder;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.search.ClearScrollRequest;
import org.elasticsearch.action.search.ClearScrollResponse;
import org.elasticsearch.action.search.MultiSearchRequestBuilder;
import org.elasticsearch.action.search.MultiSearchResponse;
import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.SearchScrollRequestBuilder;
import org.elasticsearch.action.support.master.AcknowledgedResponse;
import org.elasticsearch.action.update.UpdateRequest;
import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.index.engine.DocumentMissingException;
import org.elasticsearch.index.reindex.BulkByScrollResponse;
import org.elasticsearch.index.reindex.DeleteByQueryAction;
import org.elasticsearch.index.reindex.DeleteByQueryRequestBuilder;
import org.elasticsearch.script.mustache.SearchTemplateRequestBuilder;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
private TransportClient client;
public List multiSearch(List requestList) {
try {
MultiSearchRequestBuilder multiBuilder = client.prepareMultiSearch();
for (SearchRequestBuilder request : requestList) {
multiBuilder.add(request);
}
MultiSearchResponse searchResponse = multiBuilder.execute().actionGet();
List responseList = new ArrayList();
for (MultiSearchResponse.Item item : searchResponse.getResponses()) {
responseList.add(item.getResponse());
}
return responseList;
} catch (Exception exception) {
throw new Exception();
}
}
import org.elasticsearch.ElasticsearchException;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.DocWriteResponse.Result;
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
import org.elasticsearch.action.bulk.BackoffPolicy;
import org.elasticsearch.action.bulk.BulkItemResponse;
import org.elasticsearch.action.bulk.BulkRequestBuilder;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.bulk.Retry;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.get.MultiGetItemResponse;
import org.elasticsearch.action.get.MultiGetRequestBuilder;
import org.elasticsearch.action.get.MultiGetResponse;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexRequestBuilder;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.search.ClearScrollRequest;
import org.elasticsearch.action.search.ClearScrollResponse;
import org.elasticsearch.action.search.MultiSearchRequestBuilder;
import org.elasticsearch.action.search.MultiSearchResponse;
import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.SearchScrollRequestBuilder;
import org.elasticsearch.action.support.master.AcknowledgedResponse;
import org.elasticsearch.action.update.UpdateRequest;
import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.index.engine.DocumentMissingException;
import org.elasticsearch.index.reindex.BulkByScrollResponse;
import org.elasticsearch.index.reindex.DeleteByQueryAction;
import org.elasticsearch.index.reindex.DeleteByQueryRequestBuilder;
import org.elasticsearch.script.mustache.SearchTemplateRequestBuilder;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
private TransportClient client
public class GroupSearchIndexRepository{
public SearchTemplateRequestBuilder getSearchTemplateRequestBuilder() {
try {
return new SearchTemplateRequestBuilder(client);
} catch (Exception exception) {
LOGGER.error("Search template request builder not available.", exception);
new Exception("error");
}
return null;
}
public SearchResponse searchScript(Map parameters, String scriptName) {
SearchTemplateRequestBuilder searchTemplateRequestBuilder = getSearchTemplateRequestBuilder();
SearchTemplateResponse response = searchTemplateRequestBuilder.setScript(scriptName)
.setScriptType(ScriptType.STORED).setScriptParams(parameters)
.setRequest(new SearchRequest(this.readIndex)).get();
return response.getResponse();
}
}
public class GroupSearchIndexRepository groupSearchIndexRepository
private JSONObject getGroupFromElastic(Map params, String searchTemplateName) {
SearchResponse response = groupSearchIndexRepository.searchScript(params, searchTemplateName);
if (response.getHits().getTotalHits() > 0) {
try {
SearchHit hit = response.getHits().getAt(0);
String payload = hit.getSourceAsString();
return new JSONObject(payload);
} catch (Exception e) {
logger.info("exception - elastic response {}", response);
throw e;
}
} else {
return null;
}
}
[/code]
как перенести этот код в aws opensearch? Не могу найти подходящую замену.
Подробнее здесь: [url]https://stackoverflow.com/questions/79810464/migrate-elasticsearch-code-to-opensearch-multi-request-search[/url]