Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Msearch template API tests #735

Merged
merged 7 commits into from
Dec 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
- Fixed request schema for `PATCH /_plugins/_security/api/nodesdn` ([#731](https://github.com/opensearch-project/opensearch-api-specification/pull/731))
- Fixed response schema for `GET /_plugins/_security/api/nodesdn/{cluster_name}` ([#731](https://github.com/opensearch-project/opensearch-api-specification/pull/731))
- Fixed request body for `/_search/scroll/{scroll_id}` ([#732](https://github.com/opensearch-project/opensearch-api-specification/pull/732))
- Fixed type in `_msearch/template` ([#735](https://github.com/opensearch-project/opensearch-api-specification/pull/735))

### Changed
- Changed `tasks._common:TaskInfo` and `tasks._common:TaskGroup` to be composed of a `tasks._common:TaskInfoBase` ([#683](https://github.com/opensearch-project/opensearch-api-specification/pull/683))
Expand Down
4 changes: 3 additions & 1 deletion spec/schemas/_core.msearch_template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ components:
The value is the variable value.
type: object
additionalProperties:
type: object
oneOf:
- type: string
- type: object
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's an example where this is a string? The description says these are key/value pairs.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it's a key-value pair. Here’s one example: link.

Initially, it seems there was an expectation that the value would be in the form of an object, but I demonstrated with an example that it can also be a string.

profile:
description: When `true`, provides a profile for the query execution.
type: boolean
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
$schema: ../../../json_schemas/test_story.schema.yaml
$schema: ../../../../json_schemas/test_story.schema.yaml

description: Test document multi-search.
epilogues:
Expand All @@ -25,7 +25,9 @@ prologues:
chapters:
- synopsis: Run multiple search requests in single request (GET).
path: /_msearch
method: GET
method:
- GET
- POST
request:
content_type: application/x-ndjson
payload:
Expand All @@ -52,34 +54,4 @@ chapters:
- _index: movies
_id: movie1
- _index: movies
_id: movie2
- synopsis: Run multiple search requests in single request (POST).
path: /_msearch
method: POST
request:
content_type: application/x-ndjson
payload:
- {index: movies}
- {query: {match_all: {}}}
- {index: books}
- {query: {match_all: {}}}
response:
status: 200
payload:
responses:
- hits:
total:
value: 2
relation: eq
hits:
- _index: movies
_id: movie1
- _index: movies
_id: movie2
- hits:
total:
value: 1
relation: eq
hits:
- _index: books
_id: book1
_id: movie2
35 changes: 35 additions & 0 deletions tests/default/_core/msearch/template.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
$schema: ../../../../json_schemas/test_story.schema.yaml

description: Test _msearch/template APIs.
prologues:
- path: /_bulk
method: POST
parameters:
refresh: true
request:
content_type: application/x-ndjson
payload:
- {create: {_index: books, _id: book1}}
- {author: Harper Lee, title: To Kill a Mockingbird, year: 1960}
- {create: {_index: books, _id: book2}}
- {author: Elizabeth Rudnick, title: Beauty and the Beast, year: 1991}
- {create: {_index: books, _id: book3}}
- {author: George Orwell, title: '1984', year: 1949}
epilogues:
- path: /books
method: DELETE
status: [200, 404]

chapters:
- synopsis: Perform a multi-search template query using a GET request.
path: /_msearch/template
method:
- GET
- POST
request:
content_type: application/x-ndjson
payload:
- {index: books}
- {source: '{"query": {"match": {"title": "{{title}}"}}}', params: {title: Mockingbird}}
- {index: books}
- {source: '{"query": {"match": {"title": "{{title}}"}}}', params: {title: Beast}}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
$schema: ../../../json_schemas/test_story.schema.yaml
$schema: ../../../../json_schemas/test_story.schema.yaml

description: Test endpoints relevant to the lifecycle of an index, including multi-get and multi-search operations.
prologues:
Expand All @@ -22,7 +22,9 @@ epilogues:
chapters:
- synopsis: Perform a `_msearch` request to execute multiple search queries in a single call.
path: /{index}/_msearch
method: POST
method:
- GET
- POST
parameters:
index: books
request:
Expand All @@ -31,6 +33,4 @@ chapters:
- {index: books}
- {query: {match: {title: To Kill a Mockingbird}}}
- {index: books}
- {query: {match: {title: The Cruise}}}
response:
status: 200
- {query: {match: {title: The Cruise}}}
37 changes: 37 additions & 0 deletions tests/default/indices/msearch/template.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
$schema: ../../../../json_schemas/test_story.schema.yaml

description: Test _msearch/template APIs.
prologues:
- path: /_bulk
method: POST
parameters:
refresh: true
request:
content_type: application/x-ndjson
payload:
- {create: {_index: books, _id: book1}}
- {author: Harper Lee, title: To Kill a Mockingbird, year: 1960}
- {create: {_index: books, _id: book2}}
- {author: Elizabeth Rudnick, title: Beauty and the Beast, year: 1991}
- {create: {_index: books, _id: book3}}
- {author: George Orwell, title: '1984', year: 1949}
epilogues:
- path: /books
method: DELETE
status: [200, 404]

chapters:
- synopsis: Perform a multi-search template query using a GET request.
path: /{index}/_msearch/template
parameters:
index: books
method:
- GET
- POST
request:
content_type: application/x-ndjson
payload:
- {index: books}
- {source: '{"query": {"match": {"title": "{{title}}"}}}', params: {title: Mockingbird}}
- {index: books}
- {source: '{"query": {"match": {"title": "{{title}}"}}}', params: {title: Beast}}
Loading