【发布时间】:2022-01-17 10:05:52
【问题描述】:
我正在尝试将我的应用程序配置为使用 Java API Client v7.16.3 与 Elastcisearch 服务器 v7.7 交互。但是当我尝试索引新文档时,出现以下错误:
{"error":"Content-Type header [application/vnd.elasticsearch+json; compatible-with=7] is not supported","status":406}
据我了解,原因是compatibility Content-type header 的值包含compatible-with=7。 Elasticsearch v7.7 不支持这种内容类型(而 Elasticsearch v7.15 可以很好地使用它)。这是我的配置:
fun configElasticsearchRestClient(
host: String,
username: String,
password: String
): ElasticsearchClient {
val elasticsearchRestClient = RestClient.builder(HttpHost.create(host))
.build()
val transport: ElasticsearchTransport = RestClientTransport(
elasticsearchRestClient,
JacksonJsonpMapper()
)
return ElasticsearchClient(transport)
}
这里是索引方法:
fun index(document: SomeDocument) {
val indexRequest = IndexRequest.Builder<ObjectNode>()
.index("some-index")
.document(document)
.id(document.getId())
.version(document.getVersion())
.versionType(External)
.build()
elasticsearchClient.index(indexRequest)
}
是否可以禁用 Java API 客户端的兼容性标头? 或者还有其他方法可以使用 Java API Client for Elasticsearch server v7.7?
【问题讨论】:
标签: java kotlin elasticsearch elasticsearch-java-api