Chris
Chris

Reputation: 1112

How to get a List of Indices from ElasticSearch using Jest

I'm trying to retrieve a list of indices using Jest, but I just got as far as:

Stats statistics = new Stats.Builder().build();
result = client.execute(statistics);

How can i retrieve the list of indices from the result? Do I have to use something else than Stats? It would also help if someone could show me a detailed documentation of Jest. The basics are really well documented, but with the different kinds of builders I'm really lost at the moment.

Upvotes: 6

Views: 5141

Answers (3)

Irimescu Stefan
Irimescu Stefan

Reputation: 11

Use:

JestResult result = elasticSearchClient.execute(new Cat.IndicesBuilder().build());

This will return a JSON response just like curl -XGET "localhost:9200/_cat/indices?format=json"

Upvotes: 1

Nathan
Nathan

Reputation: 8920

One can simply navigate a browser to the following URL to get the indexes available on an ElasticSearch cluster.

http://elasticsearch.company.com/_aliases

This will return an array of indexes and their aliases in JSON. Here's an example:

{
    "compute-devzone1": { },
    "compute-den2": { },
    "compute-den1": { },
    ...
}

To get the list of indexes with Jest, use this code...

  HttpClientConfig config;
  JestClientFactory factory;
  JestClient client;
  GetAliases aliases;
  JestResult result;
  String json;

  config = new HttpClientConfig.
     Builder("http://elasticsearch.company.com").
     build();

  aliases = new GetAliases.
     Builder().
     build();

  factory = new JestClientFactory();

  factory.setHttpClientConfig(config);

  client = factory.getObject();
  result = client.execute(aliases);
  json   = result.getJsonString();

Use your favorite JSON processor to extract the indexes from json.

Upvotes: 4

Michael at qbox.io
Michael at qbox.io

Reputation: 321

Get Aliases will give you all the aliases for the indices on a node.

Upvotes: 4

Related Questions