使用REST http

时间:2017-11-03 08:51:13

标签: elasticsearch

我的应用正在使用Http休息呼叫请求我的Elastic实例。为此,我在我的Rest调用中直接使用我的实例的IP。

如果我想添加副本,我应该更改什么?如果主节点出现故障,我的应用程序将如何知道副本的IP?

由于

2 个答案:

答案 0 :(得分:0)

根据您用于进行http rest调用的客户端,您可以配置群集中的服务器数量。例如,对于JS客户端

var client = new elasticsearch.Client({
 hosts: [
  'https://server1:9200',
  'https://server2:9200'
  ]
});

参考here

答案 1 :(得分:0)

如果您使用的是Java或JVM语言,则可以使用RestClient。这是导入:

import org.elasticsearch.client.RestClient;

如果您使用的是Maven依赖项,请使用以下代码:

<!-- https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch -->
<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>${elasticsearch.version}</version>
</dependency>
<!-- add the x-pack jar as a dependency (optional) -->
<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>x-pack-transport</artifactId>
    <version>${elasticsearch.version}</version>
</dependency>
<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>transport</artifactId>
    <version>${elasticsearch.version}</version>
</dependency>

以下是一些创建索引的示例方法,使用RestClient搜索索引:

public Response getIndex(String indexName) throws IOException {
    return restClient.performRequest("GET", String.format("/%s", indexName));
}

public Response createIndex(String indexName, String json) throws IOException {
    HttpEntity entity = new NStringEntity(json, ContentType.APPLICATION_JSON);
    return restClient.performRequest("PUT", String.format("/%s", indexName),
            Collections.singletonMap("pretty", "true"), entity);
}

public Response searchIndex(String indexName, String recordType, Map<String, String> otherParameters) throws IOException {
    return restClient
            .performRequest("GET", String.format("/%s/%s/_search", indexName, recordType), otherParameters);
}

为了构建RestClient实例,您应该使用org.elasticsearch.client.RestClientBuilder类。