使用 JEST 写入 Elasticsearch 7.3 - 无效的 POST 方法



我一直在尝试使用 JEST API 将一些信息写入工作 elasticsearch 7.3 集群。一些资源:

  • 这里

遇到此错误消息:

URI [/my_index] 和方法 [POST] 的 HTTP 方法不正确,允许:[GET, DELETE, PUT, HEAD]

我按如下方式发送数据:

// write directly to elastic
Map<String, Object>infoMap = new LinkedHashMap();
lagInfoMap.put("type", "consumer");
lagInfoMap.put("topicval", topic);
lagInfoMap.put("groupval", group);
lagInfoMap.put("sumval", sumLag);
try {
jestResult = jestClient.execute(new Index.Builder(infoMap).index("my_index").build());
if(!jestResult.isSucceeded()) {
LOGGER.error(jestResult.toString());
}
} catch(IOException ioe) {
LOGGER.error("Unable to write to elastic", ioe);
return false;
}

似乎它想要一个 PUT 请求,但从文档(或我能找到的任何示例(中不清楚如何修改执行方法以执行此操作。

几天前我也遇到了同样的问题,最终放弃了在他们的 Github 页面上使用 JEST 进行 elasticsearch 7.3 的想法,看起来不像他们的最新版本是 6.3.1 https://github.com/searchbox-io/Jest/releases ,无法与 elasticsearch 7.X 兼容。

Elasticsearch 7.X使用PUTHTTP方法来索引文档,而早期版本使用POST方法,因此你会得到以下异常。

允许 uri [/my_index] 和方法 [POST] 的 HTTP 方法不正确: [获取、删除、放置、头]

我建议,你使用elasticsearch官方的高级Java客户端,而不是JEST,这是由elastic开发的,elasticsearch背后的公司。

最新更新