Używam klienta odpoczynku wysokiego poziomu z Java. Wersja określona wynosi 6.6.1 przeciwko ES V6.6.1

Dostaję następujący błąd, gdy próbuję zrobić bulkrequest, które są wszystkim indeksRequests

Java.lang.nosuchmethodError: Org.elasticsearch.Action.bulk.bulkrequest.pipeline () Ljava / Lang / String;

Z przyjemnością złożył problem, ale zastanawiałem się, czy ktoś może wiedzieć, co się dzieje w przypadku, gdy jest to bez problemu.

Poniżej znajduje się kod, którego używam. Doceni się, jeśli ktoś wie, jaki jest ten błąd.

Zdecydowanie używam lib 6.6.1

compile 'org.elasticsearch.client:elasticsearch-rest-high-level-client:6.6.1'

Dzięki

BasicCredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("elastic", "changeme"));

RestClientBuilder builder = RestClient.builder(new HttpHost("asus.local", 9200))
    .setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider));
RestHighLevelClient client = new RestHighLevelClient(builder);
BulkRequest request = new BulkRequest();

String line;
while ((line = reader.readLine()) != null) {
  String[] split = line.split(",");
  Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(split[0]);
  Map< String, Object> jsonMap = new HashMap< String, Object>();
  jsonMap.put("valuedate", date);
  jsonMap.put("value", Double.valueOf(split[1]));
  IndexRequest indexRequest = new IndexRequest("my_index", "doc", String.valueOf(row))
      .source(jsonMap);
  request.add(indexRequest);
}

System.out.println("starting bulk call");
BulkResponse bulkResponse = client.bulk(request, RequestOptions.DEFAULT);
System.out.println("DONE");
0
Java Guy 28 luty 2019, 22:51

2 odpowiedzi

Najlepsza odpowiedź

Plik

public String pipeline() {
    return globalPipeline;
}

Metoda została dodana na wersji 6.6 modułu {x1}} (Github File - 6.6 Oddział).

Upewnij się, że wszystkie moduły Elastic Search Udostępniają tę samą wersję.
Gdy napisałeś Rest Client 6.6.1, podejrzewam Server jest starszy niż to ({x4}}).

Potrzebujesz

<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>6.6.1</version>
</dependency>

Lub do gradle.

implementation 'org.elasticsearch:elasticsearch:6.6.1'
2
LppEdd 28 luty 2019, 20:06
<!-- elasticsearch-rest-high-level-client -->
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-high-level-client</artifactId>
        <version>6.6.1</version>
        <exclusions>
            <exclusion>
                <groupId>org.elasticsearch</groupId>
                <artifactId>elasticsearch</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>6.6.1</version>
    </dependency>

Rozwiązałem ten problem, użyj tego kodu.

0
Sunny 1 listopad 2019, 06:32