Skip to content

Commit

Permalink
add documentation about multi-target search (#3881)
Browse files Browse the repository at this point in the history
* add documents about multi-target search

add documents about multi-target search to es compatible api
add documents about multi-target search to rest api

* Update docs/reference/rest-api.md

Co-authored-by: François Massot <[email protected]>

* Update docs/reference/es_compatible_api.md

Co-authored-by: François Massot <[email protected]>

---------

Co-authored-by: François Massot <[email protected]>
  • Loading branch information
JerryKwan and fmassot authored Sep 27, 2023
1 parent 9136ff3 commit 46e65f8
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 0 deletions.
35 changes: 35 additions & 0 deletions docs/reference/es_compatible_api.md
Original file line number Diff line number Diff line change
Expand Up @@ -543,3 +543,38 @@ Query matching only documents containing a non-null value for a given field.
|-------------------|------------|------------------------------------------------------------------|---------|
| `field` | String | Only documents with a value for field will be returned. | - |


## Search multiple indices

Search APIs that accept <index_id> requests path parameter also support multi-target syntax.

### Multi-target syntax

In multi-target syntax, you can use a comma or its URL encoded version '%2C' seperated list to run a request on multiple indices: test1,test2,test3. You can also sue [glob-like](https://en.wikipedia.org/wiki/Glob_(programming)) wildcard ( \* ) expressions to target indices that match a pattern: test\* or \*test or te\*t or \*test\*.

The multi-target expression has the following constraints:

- It must follow the regex `^[a-zA-Z\*][a-zA-Z0-9-_\.\*]{0,254}$`.
- It cannot contain consecutive asterisks (`*`).
- If it contains an asterisk (`*`), the length must be greater than or equal to 3 characters.

### Examples
```
GET api/v1/_elastic/stackoverflow-000001,stackoverflow-000002/_search
{
"query_string": {
"query": "search AND engine",
"fields": ["title", "body"]
}
}
```

```
GET api/v1/_elastic/stackoverflow*/_search
{
"query_string": {
"query": "search AND engine",
"fields": ["title", "body"]
}
}
```
28 changes: 28 additions & 0 deletions docs/reference/rest-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,34 @@ The response is a JSON object, and the content type is `application/json; charse
| `num_hits` | Total number of matches | `number` |
| `elapsed_time_micros` | Processing time of the query | `number` |

### Search multiple indices
Search APIs that accept <index id> requests path parameter also support multi-target syntax.

#### Multi-target syntax

In multi-target syntax, you can use a comma or its URL encoded version '%2C' separated list to run a request on multiple indices: test1,test2,test3. You can also use [glob-like](https://en.wikipedia.org/wiki/Glob_(programming)) wildcard ( \* ) expressions to target indices that match a pattern: test\* or \*test or te\*t or \*test\*.

The following are some constrains about the multi-target expression.

- It must follow the regex `^[a-zA-Z\*][a-zA-Z0-9-_\.\*]{0,254}$`.
- It cannot contain consecutive asterisks (`*`).
- If it contains an asterisk (`*`), the length must be greater than or equal to 3 characters.

#### Examples
```
GET api/v1/stackoverflow-000001,stackoverflow-000002/search
{
"query": "search AND engine",
}
```

```
GET api/v1/stackoverflow*/search
{
"query": "search AND engine",
}
```

### Search stream in an index

```
Expand Down

0 comments on commit 46e65f8

Please sign in to comment.