Java

Manage Indices

Create an index

To create an index, you need to perform any indexing operation like:

  • set settings
  • add object

List indices - listIndices

You can list all your indices along with their associated information (number of entries, disk size, etc.) with the listIndices method:

//Sync & Async version

client.listIndices();

Delete an index - delete

You can delete an index using its name:

//Sync version
Index contacts = client.initIndex("contacts");
contacts.delete();
//Async version
AsyncIndex contacts = client.initIndex("contacts");
contacts.delete();

Clear an index - clear

You can delete the index contents without removing settings and index specific API keys by using the clearIndex command:

//Sync & Async version
index.clear();

Copy index - clear

You can copy an existing index using the copy command.

Warning: The copy command will overwrite the destination index.

//Sync version

Index myIndex = client.initIndex("MyIndex");

// Copy MyIndex in MyIndexCopy
myIndex.copyTo("MyIndexCopy");
//Async version
AsyncIndex myIndex = client.initIndex("MyIndex");

// Copy MyIndex in MyIndexCopy
myIndex.copyTo("MyIndexCopy");

Move index - moveTo

In some cases, you may want to totally reindex all your data. In order to keep your existing service running while re-importing your data we recommend the usage of a temporary index plus an atomical move using the moveTo method.

//For the sync version
Index myNewIndex = client.initIndex("MyNewIndex");

// Rename MyNewIndex in MyIndex (and overwrite it)
myNewIndex.moveTo("MyIndex");
//For the async version
AsyncIndex myNewIndex = client.initIndex("MyNewIndex");

// Rename MyNewIndex in MyIndex (and overwrite it)
myNewIndex.moveTo("MyIndex");

The moveTo method overrides the destination index, and deletes the temporary one. In other words, there is no need to call the clear or delete methods to clean the temporary index. It also overrides all the settings of the destination index (except the replicas parameter that need to not be part of the temporary index settings).

Recommended steps If you want to fully update your index MyIndex every night, we recommend the following process:

  1. Get settings and synonyms from the old index using Get settings and Get synonym.
  2. Apply settings and synonyms to the temporary index MyTmpIndex, (this will create the MyTmpIndex index) using Set settings and Batch synonyms ([!] Make sure to remove the replicas parameter from the settings if it exists.
  3. Import your records into a new index using Add Objects).
  4. Atomically replace the index MyIndex with the content and settings of the index MyTmpIndex using the Move index method. This will automatically override the old index without any downtime on the search.

You’ll end up with only one index called MyIndex, that contains the records and settings pushed to MyTmpIndex and the replica-indices that were initially attached to MyIndex will be in sync with the new data.