elasticsearch,Java,elasticsearch" /> elasticsearch,Java,elasticsearch" />

java.lang.NoSuchMethodError:org.elasticsearch.action.bulk.BulkRequest.pipeline()Ljava/lang/String;

java.lang.NoSuchMethodError:org.elasticsearch.action.bulk.BulkRequest.pipeline()Ljava/lang/String;,java,elasticsearch,Java,elasticsearch,我正在使用来自java的高级Rest客户机。针对ES v6.6.1,特定版本为6.6.1 当我尝试执行一个都是IndexRequests的BulkRequest时,出现了以下错误 java.lang.NoSuchMethodError:org.elasticsearch.action.bulk.BulkRequest.pipeline()Ljava/lang/String 很乐意提出一个问题,但想知道是否有人知道如果这不是问题会发生什么 下面是我正在使用的代码。如果有人知道这个错误是什么,我们将

我正在使用来自java的高级Rest客户机。针对ES v6.6.1,特定版本为6.6.1

当我尝试执行一个都是IndexRequests的BulkRequest时,出现了以下错误

java.lang.NoSuchMethodError:org.elasticsearch.action.bulk.BulkRequest.pipeline()Ljava/lang/String

很乐意提出一个问题,但想知道是否有人知道如果这不是问题会发生什么

下面是我正在使用的代码。如果有人知道这个错误是什么,我们将不胜感激

我肯定在使用lib6.6.1

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

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");
BasicCredentialsProvider凭证提供者=新的BasicCredentialsProvider();
setCredentials(AuthScope.ANY,新用户名密码Credentials(“弹性”、“更改名称”));
RestClientBuilder=RestClient.builder(新的HttpHost(“asus.local”,9200))
.setHttpClientConfigCallback(httpClientBuilder->httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider));
RestHighLevelClient=新的RestHighLevelClient(生成器);
BulkRequest=新的BulkRequest();
弦线;
而((line=reader.readLine())!=null){
String[]split=line.split(“,”);
日期日期=新的SimpleDataFormat(“yyyy-MM-dd-HH:MM”)。解析(拆分[0]);
MapjsonMap=newhashmap();
jsonMap.put(“valuedate”,日期);
jsonMap.put(“value”,Double.valueOf(split[1]);
IndexRequest IndexRequest=新的IndexRequest(“我的索引”,“文档”,字符串.valueOf(行))
.资料来源(jsonMap);
请求。添加(indexRequest);
}
System.out.println(“启动批量调用”);
BulkResponse BulkResponse=client.bulk(request,RequestOptions.DEFAULT);
系统输出打印项次(“完成”);

方法已添加到
Elasticsearch Server
模块()的版本
6.6

确保所有
弹性搜索
模块共享同一版本。
当您编写的
Rest客户端
6.6.1
时,我怀疑
服务器
比它旧(
<6.6

你需要

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

方法已添加到
Elasticsearch Server
模块()的版本
6.6

确保所有
弹性搜索
模块共享同一版本。
当您编写的
Rest客户端
6.6.1
时,我怀疑
服务器
比它旧(
<6.6

你需要

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

org.elasticsearch.client
elasticsearch rest高级客户端
6.6.1
org.elasticsearch
弹性搜索
org.elasticsearch
弹性搜索
6.6.1
我用这些代码解决了这个问题。


org.elasticsearch.client
elasticsearch rest高级客户端
6.6.1
org.elasticsearch
弹性搜索
org.elasticsearch
弹性搜索
6.6.1

我用这些代码解决了这个问题。

编译/构建项目时使用的elasticsearch版本与运行itI时使用的elasticsearch版本似乎存在差异,我想可能就是这样,所以我在发布之前下载了ES 6.6.1。我是ES6.6.1上的迪福,这是我的渐变依赖项:编译'org.elasticsearch.client:elasticsearch rest高级客户端:6.6.1'@JavaGuy看看我的答案。您需要升级核心库。用于编译/构建项目和用于运行itI的elasticsearch版本似乎存在差异。我认为可能是这样,所以我在发布之前下载了ES 6.6.1。我是ES6.6.1上的迪福,这是我的渐变依赖项:编译'org.elasticsearch.client:elasticsearch rest高级客户端:6.6.1'@JavaGuy看看我的答案。您需要升级核心库。我正在使用compile'org.elasticsearch.client:elasticsearch rest高级客户端:6.6.1'。我将尝试添加您提到的elasticsearch库thx@JavaGuy这是另一个模块。我发布的是核心版本。并在“依赖项”块中查找重复项。我正在添加其余的高级客户机和核心模块,对吗?@JavaGuy是的,没错。就是thx。该死-不高兴,因为我在上面浪费了很多时间。可以合理地假设高rest客户端6.6.1将依赖于核心6.6.1,不是吗?ELK stack的其他产品都是同步版本(ES、Kibana、LogStash等)。感谢您的帮助,我正在使用compile'org.elasticsearch.client:elasticsearch rest高级客户端:6.6.1'。我将尝试添加您提到的elasticsearch库thx@JavaGuy这是另一个模块。我发布的是核心版本。并在“依赖项”块中查找重复项。我正在添加其余的高级客户机和核心模块,对吗?@JavaGuy是的,没错。就是thx。该死-不高兴,因为我在上面浪费了很多时间。可以合理地假设高rest客户端6.6.1将依赖于核心6.6.1,不是吗?ELK stack的其他产品都是同步版本(ES、Kibana、LogStash等)。谢谢你的帮助
implementation 'org.elasticsearch:elasticsearch:6.6.1'
<!-- 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>