123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- [role="xpack"]
- [[put-query-ruleset]]
- === Create or update query ruleset
- preview::[]
- ++++
- <titleabbrev>Create or update query ruleset</titleabbrev>
- ++++
- Creates or updates a query ruleset.
- [[put-query-ruleset-request]]
- ==== {api-request-title}
- `PUT _query_rules/<ruleset_id>`
- [[put-query-ruleset-prereqs]]
- ==== {api-prereq-title}
- Requires the `manage_cluster` privilege.
- [[put-query-ruleset-path-params]]
- ==== {api-path-parms-title}
- `<body>`::
- (Required, object)
- Contains parameters for a query ruleset:
- ====
- `rules`::
- (Required, array of objects)
- The specific rules included in this query ruleset.
- Each rule must have the following information:
- - `rule_id` (Required, string)
- A unique identifier for this rule.
- - `type` (Required, string)
- The type of rule. At this time only `pinned` query rule types are allowed.
- - `criteria` (Required, array of objects)
- - `actions` (Required, object)
- The actions to take when the rule is matched. The format of this action depends on the rule type.
- Criteria must have the following information:
- - `type` (Required, string)
- The type of criteria. At this time only `exact` criteria types are allowed.
- - `metadata` (Required, string)
- The metadata field to match against. At this time only `query_string` metadata types are allowed.
- - `value` (Required, string)
- The value to match against the metadata field.
- Actions depend on the rule type.
- For `pinned` rules, actions follow the format specified by the <<query-dsl-pinned-query,Pinned Query>>.
- The following actions are allowed:
- - `ids` (Optional, array of strings)
- The The unique <<mapping-id-field, document IDs>> of the documents to pin. Only one of `ids` or `docs` may be specified, and at least one must be specified.
- - `docs` (Optional, array of objects)
- The documents to pin. Only one of `ids` or `docs` may be specified, and at least one must be specified.
- You can specify the following attributes for each document:
- +
- --
- - `_index` (Required, string)
- The index of the document to pin.
- - `_id` (Required, string)
- The unique <<mapping-id-field, document ID>>.
- --
- ====
- [[put-query-ruleset-example]]
- ==== {api-examples-title}
- The following example creates a new query ruleset called `my-ruleset`.
- Two rules are associated with `my-ruleset`:
- - `my-rule1` will pin documents with IDs `id1` and `id2` when the `query_string` exactly matches `marvel`.
- - `my-rule2` will pin documents from different, specified indices with IDs `id3` and `id4` when the `query_string` exactly matches `dc`.
- [source,console]
- ----
- PUT _query_rules/my-ruleset
- {
- "rules": [
- {
- "rule_id": "my-rule1",
- "type": "pinned",
- "criteria": [
- {
- "type": "exact",
- "metadata": "query_string",
- "value": "marvel"
- }
- ],
- "actions": {
- "ids": [
- "id1",
- "id2"
- ]
- }
- },
- {
- "rule_id": "my-rule2",
- "type": "pinned",
- "criteria": [
- {
- "type": "exact",
- "metadata": "query_string",
- "value": "dc"
- }
- ],
- "actions": {
- "docs": [
- {
- "_index": "index1",
- "_id": "id3"
- },
- {
- "_index": "index2",
- "_id": "id4"
- }
- ]
- }
- }
- ]
- }
- ----
- // TESTSETUP
- //////////////////////////
- [source,console]
- --------------------------------------------------
- DELETE _query_rules/my-ruleset
- --------------------------------------------------
- // TEARDOWN
- //////////////////////////
|