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

Fix msearch_template Response #1178

Closed
wants to merge 1 commit into from
Closed
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
52 changes: 3 additions & 49 deletions output/schema/schema.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions output/schema/validation-errors.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 2 additions & 6 deletions output/typescript/types.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 1 addition & 5 deletions specification/_global/msearch/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,5 @@ export class MultiSearchResult<TDocument> {

/** @codegen_names result, failure */
export type ResponseItem<TDocument> =
| MultiSearchItem<TDocument>
| SearchResponse<TDocument>
Copy link
Member

Choose a reason for hiding this comment

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

We need MultiSearchItem as multisearch response items have a status field that indicates the result of each search request. This is present in the ES source code and explained in the docs.

| ErrorResponseBase

export class MultiSearchItem<TDocument> extends SearchResponse<TDocument> {
status: integer
}
2 changes: 1 addition & 1 deletion specification/_types/Base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ export class ErrorResponseBase {
// If the error is a string, it means that it was not caused by an exception on ES side, but on the HTTP routing layer.
// This should never happen in clients, because we assume we will never send malformed request.
error: ErrorCause
status: integer
status?: integer
Copy link
Member

Choose a reason for hiding this comment

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

Status is always present in error responses, including in multisearch responses. See ES code and the docs "an object with error message and corresponding status code will be returned in place of the actual search response".

Keeping error and status required also plays an important role (in the Java client) to disambiguate some non-200 results where ES will return either a valid response or an error depending on the parameters (e.g. delete document that returns 404+error if the index doesn't exist but 404+valid response if the index exist but not the document).

}

export class IndicesResponseBase extends AcknowledgedResponseBase {
Expand Down