Rule query

edit

rule_query was renamed to rule in 8.15.0. The old syntax using rule_query and ruleset_id is deprecated and will be removed in a future release, so it is strongly advised to migrate existing rule queries to the new API structure.

Applies query rules to the query before returning results. This feature is used to promote documents in the manner of a Pinned Query based on matching defined rules. If no matching query rules are defined, the "organic" matches for the query are returned. All matching rules are applied in the order in which they appear in the query ruleset.

To use the rule query, you first need a defined set of query rules. Use the query rules management APIs to create and manage query rules. For more information and examples see Searching with query rules.

Example request

edit
resp = client.search(
    query={
        "rule": {
            "match_criteria": {
                "user_query": "pugs"
            },
            "ruleset_ids": [
                "my-ruleset"
            ],
            "organic": {
                "match": {
                    "description": "puggles"
                }
            }
        }
    },
)
print(resp)
const response = await client.search({
  query: {
    rule: {
      match_criteria: {
        user_query: "pugs",
      },
      ruleset_ids: ["my-ruleset"],
      organic: {
        match: {
          description: "puggles",
        },
      },
    },
  },
});
console.log(response);
GET /_search
{
  "query": {
    "rule": {
      "match_criteria": {
        "user_query": "pugs"
      },
      "ruleset_ids": ["my-ruleset"],
      "organic": {
        "match": {
          "description": "puggles"
        }
      }
    }
  }
}

Top-level parameters for rule_query

edit
ruleset_ids
(Required, array) An array of one or more unique query ruleset ID with query-based rules to match and apply as applicable. Rulesets and their associated rules are evaluated in the order in which they are specified in the query and ruleset. The maximum number of rulesets to specify is 10.
match_criteria
(Required, object) Defines the match criteria to apply to rules in the given query ruleset. Match criteria should match the keys defined in the criteria.metadata field of the rule.
organic
(Required, object) Any choice of query used to return results, that may be modified by matching query rules. If no query rules are matched and applied, this query will be executed with no modification.