弹性正在更新他们的文档现在使用与Java的RestHighLevelClient。它也有一个映射API:
现在,你如何作出这样的要求与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(春季)或任何其他普通的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
。
与低级别的客户端,你执行任何类型的请求,包括你正在寻找一个。
至于名字,我认为高层指的是提供的方法(也称为可重用性,便利性)的事实来创建请求,一个不强制实施,其余请求自己。您可以随时使用RestTemplate。注意HighLevelRestClient使用Apache的HttpClient的内部。
但对于代码的可维护性,我会选择一条路可走。(从低到高级别或任何HTTP客户端)。
从文档(注意RestHighLevelClient是在低一级建造的。)
低级别的Java REST客户端在内部使用的Apache HTTP客户端异步发送HTTP请求。这取决于以下工件,即异步HTTP客户端和自己的传递依赖:
- org.apache.httpcomponents:httpasyncclient
- org.apache.httpcomponents:的HttpCore-NIO
- org.apache.httpcomponents:HttpClient的
- org.apache.httpcomponents:的HttpCore
- 公地编解码器:公地编解码器
- 共享记录:共享记录
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句