Create or update a synonym rule Generally available; Added in 8.10.0

PUT /_synonyms/{set_id}/{rule_id}

Create or update a synonym rule in a synonym set.

If any of the synonym rules included is invalid, the API returns an error.

When you update a synonym rule, all analyzers using the synonyms set will be reloaded automatically to reflect the new rule.

Required authorization

  • Cluster privileges: manage_search_synonyms

Path parameters

  • set_id string Required

    The ID of the synonym set.

  • rule_id string Required

    The ID of the synonym rule to be updated or created.

Query parameters

  • refresh boolean Generally available; Added in 9.1.0

    If true, the request will refresh the analyzers with the new synonym rule and wait for the new synonyms to be available before returning. If false, analyzers will not be reloaded with the new synonym rule

application/json

Body Required

  • synonyms string Required

    The synonym rule information definition, which must be in Solr format.

Responses

  • 200 application/json
    Hide response attributes Show response attributes object
    • result string Required

      The update operation result.

      Values are created, updated, deleted, not_found, or noop.

    • reload_analyzers_details object

      Updating synonyms in a synonym set can reload the associated analyzers in case refresh is set to true. This information is the analyzers reloading result.

      Hide reload_analyzers_details attributes Show reload_analyzers_details attributes object
      • reload_details array[object] Required
        Hide reload_details attributes Show reload_details attributes object
        • index string Required
        • reloaded_analyzers array[string] Required
        • reloaded_node_ids array[string] Required
      • _shards object Required
        Hide _shards attributes Show _shards attributes object
        • failed number Required

          The number of shards the operation or search attempted to run on but failed.

        • successful number Required

          The number of shards the operation or search succeeded on.

        • total number Required

          The number of shards the operation or search will run on overall.

        • failures array[object]
        • skipped number
PUT /_synonyms/{set_id}/{rule_id}
PUT _synonyms/my-synonyms-set/test-1
{
  "synonyms": "hello, hi, howdy"
}
resp = client.synonyms.put_synonym_rule(
    set_id="my-synonyms-set",
    rule_id="test-1",
    synonyms="hello, hi, howdy",
)
const response = await client.synonyms.putSynonymRule({
  set_id: "my-synonyms-set",
  rule_id: "test-1",
  synonyms: "hello, hi, howdy",
});
response = client.synonyms.put_synonym_rule(
  set_id: "my-synonyms-set",
  rule_id: "test-1",
  body: {
    "synonyms": "hello, hi, howdy"
  }
)
$resp = $client->synonyms()->putSynonymRule([
    "set_id" => "my-synonyms-set",
    "rule_id" => "test-1",
    "body" => [
        "synonyms" => "hello, hi, howdy",
    ],
]);
curl -X PUT -H "Authorization: ApiKey $ELASTIC_API_KEY" -H "Content-Type: application/json" -d '{"synonyms":"hello, hi, howdy"}' "$ELASTICSEARCH_URL/_synonyms/my-synonyms-set/test-1"
Request example
{
  "synonyms": "hello, hi, howdy"
}
Response examples (200)
A successful response from `PUT _synonyms/my-synonyms-set/test-1`.
{
  "result": "updated",
  "reload_analyzers_details": {
    "_shards": {
      "total": 2,
      "successful": 1,
      "failed": 0
    },
    "reload_details": [
      {
        "index": "test-index",
        "reloaded_analyzers": [
          "my_search_analyzer"
        ],
        "reloaded_node_ids": [
          "1wYFZzq8Sxeu_Jvt9mlbkg"
        ]
      }
    ]
  }
}