2016-04-27 7 views
1

Ich bin neu in der elastischen Suche, ich möchte die Dokumente in der elastischen Suche mit jest API aus der Anwendung indexiert ablaufen. Ich fand, dass es einen Parameter gibt, der dafür TTL genannt wird. Aber ich habe das Problem, den Parameter vom jest-Client als aktiviert und wahr zu setzen. Bitte lassen Sie mich wissen, wie dies zu erreichen ist. Vielen Dank im Voraus!Wie kann ich die Dokumente in elastische Suche mit Jest API aus Java-Anwendung abgelaufen?

+0

I gegen die Verwendung von TTL beraten, sondern über Ihre Daten denken, wenn es so strukturiert sein, dass Sie einen gesamten Index, nachdem die Daten gelöscht werden können „abgelaufen“ . Auf diese Weise ist es viel effizienter als mit TTL. –

+0

Können Sie bitte ausführen, wie nur die Indizes gelöscht werden, die abgelaufene Daten haben – sweety

+0

Verwenden Sie das Tool Curator zum Löschen von 'Indizes'' --OLDER-THAN integer_value': https://www.elastic.co/guide/en/elasticsearch /client/curator/current/indices-subcommand.html –

Antwort

0

Dies schien für mich zu arbeiten:

final String index = "myindex"; 
final String type = "mytype"; 
final String id = "myid"; 

final PutMapping putMapping = new PutMapping.Builder(index, type, "{ \"_ttl\" : { \"enabled\" : true } }").build(); 
client.execute(putMapping); 

final Map<String, String> documentToIndex = new HashMap<String, String>(); 
documentToIndex.put("name", "Fred"); 
documentToIndex.put("phoneNumber", "1234"); 
documentToIndex.put("_ttl", "30s"); // Set the TTL 

final String jsonDocument = gson.toJson(documentToIndex); 
final JestResult result = client.execute(new Index.Builder(jsonDocument).index(index).type(type).id(id).build());