gpt4 book ai didi

java - Elasticsearch 6.4 : Mapping with RestHighLevelClient

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:01:14 26 4
gpt4 key购买 nike

Elastic 正在更新他们的文档以使用带有 Java 的 RestHighLevelClient。它还具有映射 API:

https://www.elastic.co/guide/en/elasticsearch/client/java-rest/master/java-rest-high-put-mapping.html

现在如何使用该 API 发出这样的请求?

PUT /test
{
"settings": {
"analysis": {
"filter": {
"email": {
"type": "pattern_capture",
"preserve_original": 1,
"patterns": [
"([^@]+)",
"(\\p{L}+)",
"(\\d+)",
"@(.+)",
"([^-@]+)"
]
}
},
"analyzer": {
"email": {
"tokenizer": "uax_url_email",
"filter": [
"email",
"lowercase",
"unique"
]
}
}
}
},
"mappings": {
"emails": {
"properties": {
"email": {
"type": "string",
"analyzer": "email"
}
}
}
}
}

您是否应该将其拆分为两个请求并将此 API 用于第二个请求? https://www.elastic.co/guide/en/elasticsearch/client/java-rest/master/java-rest-high-indices-put-settings.html

或者 RestHighLevelClient 是否旨在用于高性能操作,但对于初始配置,您可以自由使用 RestTemplate (Spring) 或任何其他普通的 Java Rest 客户端?

最佳答案

如您在文档中所见:

PutMappingRequest request = new PutMappingRequest("twitter"); 
request.type("tweet");

您可以使用您定义的字符串来设置此请求的负载

request.source(
"{\n" +
" \"properties\": {\n" +
" \"message\": {\n" +
" \"type\": \"text\"\n" +
" }\n" +
" }\n" +
"}",
XContentType.JSON);

或带有您的属性甚至 XContentBuilder 的 map 。

使用低级客户端,您可以执行任何类型的请求,包括您正在寻找的请求。

关于名称,我认为 HighLevel 指的是提供了创建请求的方法(又名可重用性、便利性),而不是强制自己实现其余请求.您始终可以使用 RestTemplate。请注意,HighLevelRestClient 在内部使用 apache HttpClient

但为了代码的可维护性,我会选择一种方式。 (低-高级别或任何 http 客户端)。

来自文档(注意 RestHighLevelClient 是建立在低级别的基础上的。)

The low-level Java REST client internally uses the ApacheHttp Async Client to send http requests. It depends on the followingartifacts, namely the async http client and its own transitivedependencies:

  • org.apache.httpcomponents:httpasyncclient
  • org.apache.httpcomponents:httpcore-nio
  • org.apache.httpcomponents:httpclient
  • org.apache.httpcomponents:httpcore
  • commons-codec:commons-codec
  • commons-logging:commons-logging

关于java - Elasticsearch 6.4 : Mapping with RestHighLevelClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52001039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com