首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ElasticSearch 6.4:与RestHighLevelClient的映射

ElasticSearch 6.4:与RestHighLevelClient的映射
EN

Stack Overflow用户
提问于 2018-08-24 09:07:31
回答 1查看 1.6K关注 0票数 3

弹力正在更新他们的文档以使用RestHighLevelClient和Java。它还有一个映射API:

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

现在,如何使用该API提出这样的请求呢?

代码语言:javascript
复制
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客户端?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-24 09:29:03

正如您在文档中看到的那样:

代码语言:javascript
复制
PutMappingRequest request = new PutMappingRequest("twitter"); 
request.type("tweet"); 

可以使用定义为字符串来设置此请求的有效负载。

代码语言:javascript
复制
request.source(
"{\n" +
"  \"properties\": {\n" +
"    \"message\": {\n" +
"      \"type\": \"text\"\n" +
"    }\n" +
"  }\n" +
"}", 
XContentType.JSON);

或者是带有属性的映射,甚至是XContentBuilder

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

关于名称,我认为HighLevel指的是提供方法(也称为可重用性、方便性)来创建请求,而不是强制实现其他请求本身。您可以始终使用RestTemplate。注意,HighLevelRestClient内部使用apache HttpClient

但是对于代码的可维护性,我会选择一种方法。(低-高级或任何http-客户端)。

从docs (注意,RestHighLevelClient是建立在低级的基础上的)。

低级别的Java客户机内部使用Apache异步客户端发送Http请求。它依赖于以下构件,即异步http客户端及其自身的传递依赖关系:

  • org.apache.httpcomponents:httpasyncclient
  • httpcore:httpcore-nio
  • org.apache.httpcomponents:httpclient
  • org.apache.httpcomponents:httpcore
  • 共用编解码器:共用编解码器
  • 共用-伐木:共用日志
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52001039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档