当前位置: 首页 > 知识库问答 >
问题:

ElasticSearch 6.4:与RestHighLevelClient的映射

柴霖
2023-03-14

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

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

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"
        }
      }
    }
  }
}

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

共有1个答案

易书
2023-03-14

正如您在文档中所看到的:

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

您可以将定义设置为字符串来设置此请求的有效负载

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

或者与您的属性甚至XContentBuilder映射。

  • 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
 类似资料:
  • 我有一个spring boot 2.2.5应用程序,并计划使用AWS elasticsearch,其版本为7.4。有人能告诉我是使用Spring数据elasticsearch还是elasticsearch库吗?我在SO上看到一些帖子谈到了这一点,但它们都很老了,并且谈到restHighLevel客户端不受支持,而现在spring data elasticsearch 4中的情况并非如此。x、 无论

  • 我在SpringBoot应用程序中创建HighHendRestClient bean时遇到一个错误。我已经做了一个测试'app',在那里我检查了我可以实例化我想要的对象,然后进行我想要的调用,我现在正在做一个新的应用程序的婴儿步骤。 就我所能看到的(我还没有用它做太多...) 当我添加它时(最初我传入了RestClient bean,但现在我临时创建了一个本地对象,以便更清晰) 我得到这个java

  • 我目前正在研究如何测试我的ElasticSearch类的覆盖率,它实现了ResHighLevel客户端。问题是它返回指向RestHighLevelClient.class.的空指针,我是ES的新手,我不知道我哪里出错了。 这是我的ElasticSearch类: 这是我的测试案例: 我的端口已在app.properties中设置为9200。 请在这方面给我一些帮助。我真的需要解决这个问题。任何帮助都

  • 我通读了地图和地图分区之间的理论差异, 但我下面描述的问题更多地基于GC活动 = = 提前感谢。任何帮助都将不胜感激。

  • 问题内容: 我正在使用java.time.LocalDate(Java 8)表示Java类中的某些成员字段。 我还使用mybatis与我的数据库进行交互。 从数据库检索某些数据时,所有其他字段都将正确填充,但startDate和endDate字段最终将为null。 但是,如果我使用java.util.Date,例如 当我将它们声明为java.util.Date时,可以在这两个字段(startDat

  • 问题内容: 假设我有个人 和工作 提取时,我无法将Person和Job映射到其他实体。 我在做什么错? 问题答案: 您的代码应为: (尝试从工作中删除重复的列’person_id’) 或其他共享主键的方法: