Get a query rule Generally available; Added in 8.15.0

GET /_query_rules/{ruleset_id}/_rule/{rule_id}

Get details about a query rule within a query ruleset.

Required authorization

  • Cluster privileges: manage_search_query_rules
See rules and rulesets in Query Rules UI

Path parameters

  • ruleset_id string Required

    The unique identifier of the query ruleset containing the rule to retrieve

  • rule_id string Required

    The unique identifier of the query rule within the specified ruleset to retrieve

Responses

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

      A unique identifier for the rule.

    • type string Required

      The type of rule. pinned will identify and pin specific documents to the top of search results. exclude will exclude specific documents from search results.

      Values are pinned or exclude.

    • criteria object | array[object] Required

      The criteria that must be met for the rule to be applied. If multiple criteria are specified for a rule, all criteria must be met for the rule to be applied.

      One of:
      Hide attributes Show attributes object
      • type string Required

        The type of criteria. The following criteria types are supported:

        • always: Matches all queries, regardless of input.
        • contains: Matches that contain this value anywhere in the field meet the criteria defined by the rule. Only applicable for string values.
        • exact: Only exact matches meet the criteria defined by the rule. Applicable for string or numerical values.
        • fuzzy: Exact matches or matches within the allowed Levenshtein Edit Distance meet the criteria defined by the rule. Only applicable for string values.
        • gt: Matches with a value greater than this value meet the criteria defined by the rule. Only applicable for numerical values.
        • gte: Matches with a value greater than or equal to this value meet the criteria defined by the rule. Only applicable for numerical values.
        • lt: Matches with a value less than this value meet the criteria defined by the rule. Only applicable for numerical values.
        • lte: Matches with a value less than or equal to this value meet the criteria defined by the rule. Only applicable for numerical values.
        • prefix: Matches that start with this value meet the criteria defined by the rule. Only applicable for string values.
        • suffix: Matches that end with this value meet the criteria defined by the rule. Only applicable for string values.

        Values are global, exact, exact_fuzzy, fuzzy, prefix, suffix, contains, lt, lte, gt, gte, or always.

      • metadata string

        The metadata field to match against. This metadata will be used to match against match_criteria sent in the rule. It is required for all criteria types except always.

      • values array[object]

        The values to match against the metadata field. Only one value must match for the criteria to be met. It is required for all criteria types except always.

    • actions object Required

      The actions to take when the rule is matched. The format of this action depends on the rule type.

      Hide actions attributes Show actions attributes object
      • ids array[string]

        The unique document IDs of the documents to apply the rule to. Only one of ids or docs may be specified and at least one must be specified.

      • docs array[object]

        The documents to apply the rule to. Only one of ids or docs may be specified and at least one must be specified. There is a maximum value of 100 documents in a rule. You can specify the following attributes for each document:

        • _index: The index of the document to pin.
        • _id: The unique document ID.
        Hide docs attributes Show docs attributes object
        • _id string Required

          The unique document ID.

        • _index string

          The index that contains the document.

    • priority number
GET /_query_rules/{ruleset_id}/_rule/{rule_id}
GET _query_rules/my-ruleset/_rule/my-rule1
resp = client.query_rules.get_rule(
    ruleset_id="my-ruleset",
    rule_id="my-rule1",
)
const response = await client.queryRules.getRule({
  ruleset_id: "my-ruleset",
  rule_id: "my-rule1",
});
response = client.query_rules.get_rule(
  ruleset_id: "my-ruleset",
  rule_id: "my-rule1"
)
$resp = $client->queryRules()->getRule([
    "ruleset_id" => "my-ruleset",
    "rule_id" => "my-rule1",
]);
curl -X GET -H "Authorization: ApiKey $ELASTIC_API_KEY" "$ELASTICSEARCH_URL/_query_rules/my-ruleset/_rule/my-rule1"
client.queryRules().getRule(g -> g
    .ruleId("my-rule1")
    .rulesetId("my-ruleset")
);
Response examples (200)
A successful response from `GET _query_rules/my-ruleset/_rule/my-rule1`.
{
  "rule_id": "my-rule1",
  "type": "pinned",
  "criteria": [
    {
      "type": "contains",
      "metadata": "query_string",
      "values": [
        "pugs",
        "puggles"
      ]
    }
  ],
  "actions": {
    "ids": [
      "id1",
      "id2"
    ]
  }
}