Перенос классов Elasticsearch Builder на последнюю версию Java API 9.x.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Перенос классов Elasticsearch Builder на последнюю версию Java API 9.x.

Сообщение Anonymous »

У меня есть Java-код elasticsearch для подключения и получения данных:
Зависимости Gradle:

Код: Выделить всё

    implementation 'org.elasticsearch:elasticsearch:5.6.16'
implementation 'org.elasticsearch.client:transport:5.6.16'

Код: Выделить всё

    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;

public class ESRepository {

private TransportClient client;

//..  java method to initialize client connection object

protected SearchRequestBuilder getSearchRequestBuilder() {
try {
return client.prepareSearch();
} catch (Exception exception) {
throw Exception();
}
}

public SearchResponse search(SearchRequestBuilder builder) {
try {
return builder.get();
} catch (Exception exception) {
throw Exception();
}
}

public SearchScrollRequestBuilder getSearchScrollRequestBuilder(String scrollId) {
try {
return client.prepareSearchScroll(scrollId);
} catch (Exception exception) {
throw Exception();
}
}

public SearchResponse searchScroll(SearchScrollRequestBuilder builder) {
try {
return builder.get();
} catch (Exception exception) {
throw Exception();
}
}
}

Код: Выделить всё

    import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.script.ScriptType;
import org.elasticsearch.script.mustache.SearchTemplateRequestBuilder;
import org.elasticsearch.script.mustache.SearchTemplateResponse;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.bucket.nested.NestedAggregationBuilder;
import org.elasticsearch.search.sort.SortBuilder;

public class Search extends ESRepository {

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();
}
}

Map parameters = new HashMap();
parameters.put("offset", offset);
parameters.put("limit", limit);
parameters.put("users", searchQuery);

SearchResponse response = ESRepository.searchScript(parameters, "search_template");
Для последней версии:

Код: Выделить всё

    implementation 'co.elastic.clients:elasticsearch-java:9.2.0'
implementation 'org.elasticsearch.client:elasticsearch-rest-client:9.2.0'
Я не могу найти замену вышеуказанным классам компоновщика. Знаете ли вы, как я могу перенести код и сохранить ту же структуру/логику, если это возможно?


Подробнее здесь: https://stackoverflow.com/questions/797 ... va-api-9-x
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»