The goal of this ticket is to show how to update programmatically the settings of an ElasticSeach index. I will take as example the ElaticSeachsynonyms. Imagine that for a specific index, you have the following synonyms settings:
"analysis": { "filter": { "synonym_filter": { "type": "synonym", "ignore_case": true, "synonyms": [ "Romania, RO", "Belgium, BE" ] } }, ....
Now, imagine (also) that you want to add a new entry into the synonyms lists (“France, FR”). You could do this by using the ElasticSearch REST interface (please go here if you want to know more Elasticsearch: updating the mappings and settings of an existing index) or you can use the Java API offered by ElasticSearch to do the same task programmatically:
//close the index before the update client.admin().indices().close(new CloseIndexRequest(indexName)); //update the synonyms client.admin().indices().prepareUpdateSettings(indexName).setSettings( Settings.builder() .put( //setting prefix "index.analysis.filter.synonym_filter", //group name "synonyms", //settings new String[] {"0", "1", "2"}, //values new String []{ "Romania,RO", "Belgium,BE", "France,FR" } ) ).get(); //open the index client.admin().indices().open(new OpenIndexRequest(indexName));
Useful links:
ElasticSearch Doc – Update Indices Settings
(Unofficial) ElasticSearch Java API for the IndicesAdminClieant interface
(Unofficial) ElasticSearch Java API for the ImmutableSettings.Builder.put method
You must be logged in to post a comment.