[ES|QL] Renames the language package to a more generic name (#193517)

## Summary

Renames the language-documentation-popover to language-documentation as
it stores additional layouts:
- popover
- flyout
- inline
This commit is contained in:
Stratoula Kalafateli 2024-09-23 09:58:53 +02:00 committed by GitHub
parent 1d27973241
commit 9d0d41ce87
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
46 changed files with 1236 additions and 1345 deletions

View file

@ -2,7 +2,7 @@
set -euo pipefail
VALIDATION_PACKAGE_DIR="packages/kbn-esql-validation-autocomplete"
EDITOR_PACKAGE_DIR="packages/kbn-language-documentation-popover"
EDITOR_PACKAGE_DIR="packages/kbn-language-documentation"
GIT_SCOPE="$VALIDATION_PACKAGE_DIR/**/* $EDITOR_PACKAGE_DIR/**/*"
report_main_step () {

2
.github/CODEOWNERS vendored
View file

@ -553,7 +553,7 @@ src/plugins/kibana_usage_collection @elastic/kibana-core
src/plugins/kibana_utils @elastic/appex-sharedux
x-pack/plugins/kubernetes_security @elastic/kibana-cloud-security-posture
x-pack/packages/kbn-langchain @elastic/security-generative-ai
packages/kbn-language-documentation-popover @elastic/kibana-esql
packages/kbn-language-documentation @elastic/kibana-esql
x-pack/examples/lens_config_builder_example @elastic/kibana-visualizations
packages/kbn-lens-embeddable-utils @elastic/obs-ux-infra_services-team @elastic/kibana-visualizations
packages/kbn-lens-formula-docs @elastic/kibana-visualizations

View file

@ -118,7 +118,7 @@
"serverlessPackages": "packages/serverless",
"sse": [ "packages/kbn-sse-utils" ],
"coloring": "packages/kbn-coloring/src",
"languageDocumentationPopover": "packages/kbn-language-documentation-popover/src",
"languageDocumentation": "packages/kbn-language-documentation/src",
"esql": "src/plugins/esql",
"esqlDataGrid": "src/plugins/esql_datagrid",
"statusPage": "src/legacy/core_plugins/status_page",

View file

@ -593,7 +593,7 @@
"@kbn/kibana-utils-plugin": "link:src/plugins/kibana_utils",
"@kbn/kubernetes-security-plugin": "link:x-pack/plugins/kubernetes_security",
"@kbn/langchain": "link:x-pack/packages/kbn-langchain",
"@kbn/language-documentation-popover": "link:packages/kbn-language-documentation-popover",
"@kbn/language-documentation": "link:packages/kbn-language-documentation",
"@kbn/lens-config-builder-example-plugin": "link:x-pack/examples/lens_config_builder_example",
"@kbn/lens-embeddable-utils": "link:packages/kbn-lens-embeddable-utils",
"@kbn/lens-formula-docs": "link:packages/kbn-lens-formula-docs",

View file

@ -1,15 +1,29 @@
### Shareable language documentation popover
### Shareable language documentation
This is a stateless shareable component that can be used to render documentation for a language as a popover.
This is a stateless shareable component that can be used to render documentation for a language as a popover, flyour or a React component that you can add in your applications as you wish.
It can be used in every application that would like to add an in-app documentation. The component consists of:
- A sidebar navigation with a search
- A details page
### As a popover (currently used for Lens formulas)
```
<LanguageDocumentationPopover language={language} sections={documentationSections} onHelpMenuVisibilityChange={onHelpMenuVisibilityChange} isHelpMenuOpen={isHelpMenuOpen} />
```
### As a flyout (currently used for ES|QL in unified search)
```
<LanguageDocumentationFlyout linkToDocumentation={docLinks?.links?.query?.queryESQL ?? ''} isHelpMenuOpen={isLanguageComponentOpen} onHelpMenuVisibilityChange={setIsLanguageComponentOpen} />
```
### As an inline component (currently used for ES|QL in Lens inline editing, alerts)
```
<LanguageDocumentationInline />
```
The properties are typed as:
```

View file

@ -10,5 +10,5 @@
module.exports = {
preset: '@kbn/test',
rootDir: '../..',
roots: ['<rootDir>/packages/kbn-language-documentation-popover'],
roots: ['<rootDir>/packages/kbn-language-documentation'],
};

View file

@ -1,5 +1,5 @@
{
"type": "shared-common",
"id": "@kbn/language-documentation-popover",
"id": "@kbn/language-documentation",
"owner": "@elastic/kibana-esql"
}

View file

@ -1,5 +1,5 @@
{
"name": "@kbn/language-documentation-popover",
"name": "@kbn/language-documentation",
"version": "1.0.0",
"license": "Elastic License 2.0 OR AGPL-3.0-only OR SSPL-1.0",
"private": true,
@ -9,6 +9,6 @@
"scripts": {
"make:docs": "ts-node --transpileOnly scripts/generate_esql_docs.ts",
"postmake:docs": "yarn run lint:fix",
"lint:fix": "cd ../.. && node ./scripts/eslint --fix ./packages/kbn-language-documentation-popover/src/sections/generated"
"lint:fix": "cd ../.. && node ./scripts/eslint --fix ./packages/kbn-language-documentation/src/sections/generated"
}
}

View file

@ -86,7 +86,7 @@ function writeFunctionDocs(functionDocs: Map<string, string>, pathToDocsFile: st
// Do not edit manually... automatically generated by scripts/generate_esql_docs.ts
{
label: i18n.translate(
'languageDocumentationPopover.documentationESQL.${name}',
'languageDocumentation.documentationESQL.${name}',
{
defaultMessage: '${name.toUpperCase()}',
}
@ -97,7 +97,7 @@ function writeFunctionDocs(functionDocs: Map<string, string>, pathToDocsFile: st
readOnly
enableSoftLineBreaks
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.${name}.markdown',
'languageDocumentation.documentationESQL.${name}.markdown',
{
defaultMessage: \`${docWithoutLinks.replaceAll('`', '\\`')}\`,
description:

View file

@ -85,7 +85,7 @@ function DocumentationFlyout({
<EuiFlyoutHeader hasBorder>
<EuiTitle size="s">
<h3>
{i18n.translate('languageDocumentationPopover.documentationFlyoutTitle', {
{i18n.translate('languageDocumentation.documentationFlyoutTitle', {
defaultMessage: 'ES|QL quick reference',
})}
</h3>

View file

@ -60,7 +60,7 @@ function DocumentationPopover({
button={
<EuiToolTip
position="top"
content={i18n.translate('languageDocumentationPopover.tooltip', {
content={i18n.translate('languageDocumentation.tooltip', {
defaultMessage: '{lang} reference',
values: {
lang: language,

View file

@ -70,7 +70,7 @@ function DocumentationContent({
justifyContent="spaceBetween"
>
<EuiFlexItem grow={false}>
{i18n.translate('languageDocumentationPopover.header', {
{i18n.translate('languageDocumentation.header', {
defaultMessage: '{language} reference',
values: { language },
})}
@ -78,7 +78,7 @@ function DocumentationContent({
{linkToDocumentation && (
<EuiFlexItem grow={false}>
<EuiLink external href={linkToDocumentation} target="_blank">
{i18n.translate('languageDocumentationPopover.documentationLinkLabel', {
{i18n.translate('languageDocumentation.documentationLinkLabel', {
defaultMessage: 'View full documentation',
})}
</EuiLink>
@ -106,7 +106,7 @@ function DocumentationContent({
setSearchText(e.target.value);
}}
data-test-subj="language-documentation-navigation-search"
placeholder={i18n.translate('languageDocumentationPopover.searchPlaceholder', {
placeholder={i18n.translate('languageDocumentation.searchPlaceholder', {
defaultMessage: 'Search',
})}
/>

View file

@ -45,7 +45,7 @@ function DocumentationNav({
<EuiFlexItem grow={true}>
<EuiFormRow
fullWidth
label={i18n.translate('languageDocumentationPopover.esqlDocsLabel', {
label={i18n.translate('languageDocumentation.esqlDocsLabel', {
defaultMessage: 'Select or search topics',
})}
labelAppend={
@ -57,7 +57,7 @@ function DocumentationNav({
target="_blank"
data-test-subj="language-documentation-navigation-link"
>
{i18n.translate('languageDocumentationPopover.esqlDocsLinkLabel', {
{i18n.translate('languageDocumentation.esqlDocsLinkLabel', {
defaultMessage: 'View full ES|QL documentation',
})}
</EuiLink>
@ -66,10 +66,10 @@ function DocumentationNav({
}
>
<EuiComboBox
aria-label={i18n.translate('languageDocumentationPopover.navigationAriaLabel', {
aria-label={i18n.translate('languageDocumentation.navigationAriaLabel', {
defaultMessage: 'Navigate through the documentation',
})}
placeholder={i18n.translate('languageDocumentationPopover.navigationPlaceholder', {
placeholder={i18n.translate('languageDocumentation.navigationPlaceholder', {
defaultMessage: 'Commands and functions',
})}
data-test-subj="language-documentation-navigation-dropdown"
@ -94,7 +94,7 @@ function DocumentationNav({
setSearchText(e.target.value);
}}
data-test-subj="language-documentation-navigation-search"
placeholder={i18n.translate('languageDocumentationPopover.searchPlaceholder', {
placeholder={i18n.translate('languageDocumentation.searchPlaceholder', {
defaultMessage: 'Search',
})}
fullWidth

View file

@ -17,7 +17,7 @@ const Markdown = (props: Parameters<typeof SharedUXMarkdown>[0]) => (
export const initialSection = (
<Markdown
markdownContent={i18n.translate('languageDocumentationPopover.documentationESQL.markdown', {
markdownContent={i18n.translate('languageDocumentation.documentationESQL.markdown', {
defaultMessage: `
An ES|QL (Elasticsearch query language) query consists of a series of commands, separated by pipe characters: \`|\`. Each query starts with a **source command**, which produces a table, typically with data from Elasticsearch.
@ -36,27 +36,22 @@ The result of a query is the table produced by the final processing command.
);
export const sourceCommands = {
label: i18n.translate('languageDocumentationPopover.documentationESQL.sourceCommands', {
label: i18n.translate('languageDocumentation.documentationESQL.sourceCommands', {
defaultMessage: 'Source commands',
}),
description: i18n.translate(
'languageDocumentationPopover.documentationESQL.commandsDescription',
{
defaultMessage: `A source command produces a table, typically with data from Elasticsearch. ES|QL supports the following source commands.`,
}
),
description: i18n.translate('languageDocumentation.documentationESQL.commandsDescription', {
defaultMessage: `A source command produces a table, typically with data from Elasticsearch. ES|QL supports the following source commands.`,
}),
items: [
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.from', {
label: i18n.translate('languageDocumentation.documentationESQL.from', {
defaultMessage: 'FROM',
}),
description: (
<Markdown
openLinksInNewTab={true}
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.from.markdown',
{
defaultMessage: `### FROM
markdownContent={i18n.translate('languageDocumentation.documentationESQL.from.markdown', {
defaultMessage: `### FROM
The \`FROM\` source command returns a table with up to 10,000 documents from a data stream, index, or alias. Each row in the resulting table represents a document. Each column corresponds to a field, and can be accessed by the name of that field.
\`\`\`
@ -104,23 +99,20 @@ FROM employees [METADATA _index, _id]
| STATS max = MAX(emp_no) BY _index
\`\`\`
`,
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
}
)}
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
})}
/>
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.row', {
label: i18n.translate('languageDocumentation.documentationESQL.row', {
defaultMessage: 'ROW',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.row.markdown',
{
defaultMessage: `### ROW
markdownContent={i18n.translate('languageDocumentation.documentationESQL.row.markdown', {
defaultMessage: `### ROW
The \`ROW\` source command produces a row with one or more columns with values that you specify. This can be useful for testing.
\`\`\`
@ -139,33 +131,29 @@ ROW supports the use of functions:
ROW a = ROUND(1.23, 0)
\`\`\`
`,
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
}
)}
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
})}
/>
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.show', {
label: i18n.translate('languageDocumentation.documentationESQL.show', {
defaultMessage: 'SHOW',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.show.markdown',
{
defaultMessage: `### SHOW
markdownContent={i18n.translate('languageDocumentation.documentationESQL.show.markdown', {
defaultMessage: `### SHOW
The \`SHOW <item>\` source command returns information about the deployment and its capabilities:
* Use \`SHOW INFO\` to return the deployment's version, build date and hash.
* Use \`SHOW FUNCTIONS\` to return a list of all supported functions and a synopsis of each function.
`,
ignoreTag: true,
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
}
)}
ignoreTag: true,
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
})}
/>
),
},
@ -173,25 +161,25 @@ The \`SHOW <item>\` source command returns information about the deployment and
};
export const processingCommands = {
label: i18n.translate('languageDocumentationPopover.documentationESQL.processingCommands', {
label: i18n.translate('languageDocumentation.documentationESQL.processingCommands', {
defaultMessage: 'Processing commands',
}),
description: i18n.translate(
'languageDocumentationPopover.documentationESQL.processingCommandsDescription',
'languageDocumentation.documentationESQL.processingCommandsDescription',
{
defaultMessage: `Processing commands change an input table by adding, removing, or changing rows and columns. ES|QL supports the following processing commands.`,
}
),
items: [
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.dissect', {
label: i18n.translate('languageDocumentation.documentationESQL.dissect', {
defaultMessage: 'DISSECT',
}),
description: (
<Markdown
openLinksInNewTab={true}
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.dissect.markdown',
'languageDocumentation.documentationESQL.dissect.markdown',
{
defaultMessage: `### DISSECT
\`DISSECT\` enables you to extract structured data out of a string. \`DISSECT\` matches the string against a delimiter-based pattern, and extracts the specified keys as columns.
@ -211,15 +199,13 @@ ROW a = "1953-01-23T12:15:00Z - some text - 127.0.0.1"
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.drop', {
label: i18n.translate('languageDocumentation.documentationESQL.drop', {
defaultMessage: 'DROP',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.drop.markdown',
{
defaultMessage: `### DROP
markdownContent={i18n.translate('languageDocumentation.documentationESQL.drop.markdown', {
defaultMessage: `### DROP
Use \`DROP\` to remove columns from a table:
\`\`\`
@ -234,22 +220,21 @@ FROM employees
| DROP height*
\`\`\`
`,
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
}
)}
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
})}
/>
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.enrich', {
label: i18n.translate('languageDocumentation.documentationESQL.enrich', {
defaultMessage: 'ENRICH',
}),
description: (
<Markdown
openLinksInNewTab={true}
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.enrich.markdown',
'languageDocumentation.documentationESQL.enrich.markdown',
{
defaultMessage: `### ENRICH
You can use \`ENRICH\` to add data from your existing indices to incoming records. Its similar to [ingest enrich](https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest-enriching-data.html), but it works at query time.
@ -295,15 +280,13 @@ In case of name collisions, the newly created fields will override the existing
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.eval', {
label: i18n.translate('languageDocumentation.documentationESQL.eval', {
defaultMessage: 'EVAL',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.eval.markdown',
{
defaultMessage: `### EVAL
markdownContent={i18n.translate('languageDocumentation.documentationESQL.eval.markdown', {
defaultMessage: `### EVAL
\`EVAL\` enables you to add new columns:
\`\`\`
@ -323,24 +306,21 @@ FROM employees
#### Functions
\`EVAL\` supports various functions for calculating values. Refer to Functions for more information.
`,
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
}
)}
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
})}
/>
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.grok', {
label: i18n.translate('languageDocumentation.documentationESQL.grok', {
defaultMessage: 'GROK',
}),
description: (
<Markdown
openLinksInNewTab={true}
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.grok.markdown',
{
defaultMessage: `### GROK
markdownContent={i18n.translate('languageDocumentation.documentationESQL.grok.markdown', {
defaultMessage: `### GROK
\`GROK\` enables you to extract structured data out of a string. \`GROK\` matches the string against patterns, based on regular expressions, and extracts the specified patterns as columns.
Refer to the [grok processor documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/grok-processor.html) for the syntax of grok patterns.
@ -350,23 +330,20 @@ ROW a = "12 15.5 15.6 true"
| GROK a "%'{NUMBER:b:int}' %'{NUMBER:c:float}' %'{NUMBER:d:double}' %'{WORD:e:boolean}'"
\`\`\`
`,
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
}
)}
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
})}
/>
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.keep', {
label: i18n.translate('languageDocumentation.documentationESQL.keep', {
defaultMessage: 'KEEP',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.keep.markdown',
{
defaultMessage: `### KEEP
markdownContent={i18n.translate('languageDocumentation.documentationESQL.keep.markdown', {
defaultMessage: `### KEEP
The \`KEEP\` command enables you to specify what columns are returned and the order in which they are returned.
To limit the columns that are returned, use a comma-separated list of column names. The columns are returned in the specified order:
@ -390,21 +367,20 @@ FROM employees
| KEEP h*, *
\`\`\`
`,
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
}
)}
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
})}
/>
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.limit', {
label: i18n.translate('languageDocumentation.documentationESQL.limit', {
defaultMessage: 'LIMIT',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.limit.markdown',
'languageDocumentation.documentationESQL.limit.markdown',
{
defaultMessage: `### LIMIT
The \`LIMIT\` processing command enables you to limit the number of rows:
@ -422,13 +398,13 @@ FROM employees
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.mvExpand', {
label: i18n.translate('languageDocumentation.documentationESQL.mvExpand', {
defaultMessage: 'MV_EXPAND',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.mvExpand.markdown',
'languageDocumentation.documentationESQL.mvExpand.markdown',
{
defaultMessage: `### MV_EXPAND
The \`MV_EXPAND\` processing command expands multivalued fields into one row per value, duplicating other fields:
@ -445,13 +421,13 @@ ROW a=[1,2,3], b="b", j=["a","b"]
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.rename', {
label: i18n.translate('languageDocumentation.documentationESQL.rename', {
defaultMessage: 'RENAME',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.rename.markdown',
'languageDocumentation.documentationESQL.rename.markdown',
{
defaultMessage: `### RENAME
Use \`RENAME\` to rename a column using the following syntax:
@ -487,15 +463,13 @@ FROM employees
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.sort', {
label: i18n.translate('languageDocumentation.documentationESQL.sort', {
defaultMessage: 'SORT',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.sort.markdown',
{
defaultMessage: `### SORT
markdownContent={i18n.translate('languageDocumentation.documentationESQL.sort.markdown', {
defaultMessage: `### SORT
Use the \`SORT\` command to sort rows on one or more fields:
\`\`\`
@ -529,21 +503,20 @@ FROM employees
| SORT first_name ASC NULLS FIRST
\`\`\`
`,
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
}
)}
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
})}
/>
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.statsby', {
label: i18n.translate('languageDocumentation.documentationESQL.statsby', {
defaultMessage: 'STATS ... BY',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.statsby.markdown',
'languageDocumentation.documentationESQL.statsby.markdown',
{
defaultMessage: `### STATS ... BY
Use \`STATS ... BY\` to group rows according to a common value and calculate one or more aggregated values over the grouped rows.
@ -624,13 +597,13 @@ FROM employees
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.where', {
label: i18n.translate('languageDocumentation.documentationESQL.where', {
defaultMessage: 'WHERE',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.where.markdown',
'languageDocumentation.documentationESQL.where.markdown',
{
defaultMessage: `### WHERE
Use \`WHERE\` to produce a table that contains all the rows from the input table for which the provided condition evaluates to \`true\`:
@ -659,24 +632,24 @@ Refer to **Operators** for an overview of the supported operators.
};
export const groupingFunctions = {
label: i18n.translate('languageDocumentationPopover.documentationESQL.groupingFunctions', {
label: i18n.translate('languageDocumentation.documentationESQL.groupingFunctions', {
defaultMessage: 'Grouping functions',
}),
description: i18n.translate(
'languageDocumentationPopover.documentationESQL.groupingFunctionsDocumentationESQLDescription',
'languageDocumentation.documentationESQL.groupingFunctionsDocumentationESQLDescription',
{
defaultMessage: `These grouping functions can be used with \`STATS...BY\`:`,
}
),
items: [
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.autoBucketFunction', {
label: i18n.translate('languageDocumentation.documentationESQL.autoBucketFunction', {
defaultMessage: 'BUCKET',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.autoBucketFunction.markdown',
'languageDocumentation.documentationESQL.autoBucketFunction.markdown',
{
defaultMessage: `### BUCKET
Creates groups of values - buckets - out of a datetime or numeric input. The size of the buckets can either be provided directly, or chosen based on a recommended count and values range.
@ -792,24 +765,24 @@ FROM employees
};
export const operators = {
label: i18n.translate('languageDocumentationPopover.documentationESQL.operators', {
label: i18n.translate('languageDocumentation.documentationESQL.operators', {
defaultMessage: 'Operators',
}),
description: i18n.translate(
'languageDocumentationPopover.documentationESQL.operatorsDocumentationESQLDescription',
'languageDocumentation.documentationESQL.operatorsDocumentationESQLDescription',
{
defaultMessage: `ES|QL supports the following operators:`,
}
),
items: [
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.binaryOperators', {
label: i18n.translate('languageDocumentation.documentationESQL.binaryOperators', {
defaultMessage: 'Binary operators',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.binaryOperators.markdown',
'languageDocumentation.documentationESQL.binaryOperators.markdown',
{
defaultMessage: `### Binary operators
These binary comparison operators are supported:
@ -834,13 +807,13 @@ These binary comparison operators are supported:
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.booleanOperators', {
label: i18n.translate('languageDocumentation.documentationESQL.booleanOperators', {
defaultMessage: 'Boolean operators',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.booleanOperators.markdown',
'languageDocumentation.documentationESQL.booleanOperators.markdown',
{
defaultMessage: `### Boolean operators
The following boolean operators are supported:
@ -857,13 +830,13 @@ The following boolean operators are supported:
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.castOperator', {
label: i18n.translate('languageDocumentation.documentationESQL.castOperator', {
defaultMessage: 'Cast (::)',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.castOperator.markdown',
'languageDocumentation.documentationESQL.castOperator.markdown',
{
defaultMessage: `### CAST (\`::\`)
The \`::\` operator provides a convenient alternative syntax to the \`TO_<type>\` type conversion functions.
@ -882,13 +855,13 @@ ROW ver = CONCAT(("0"::INT + 1)::STRING, ".2.3")::VERSION
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.inOperator', {
label: i18n.translate('languageDocumentation.documentationESQL.inOperator', {
defaultMessage: 'IN',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.inOperator.markdown',
'languageDocumentation.documentationESQL.inOperator.markdown',
{
defaultMessage: `### IN
The \`IN\` operator allows testing whether a field or expression equals an element in a list of literals, fields or expressions:
@ -906,13 +879,13 @@ ROW a = 1, b = 4, c = 3
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.stringOperators', {
label: i18n.translate('languageDocumentation.documentationESQL.stringOperators', {
defaultMessage: 'LIKE and RLIKE',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.stringOperators.markdown',
'languageDocumentation.documentationESQL.stringOperators.markdown',
{
defaultMessage: `### LIKE and RLIKE
For string comparison using wildcards or regular expressions, use \`LIKE\` or \`RLIKE\`:
@ -944,13 +917,13 @@ FROM employees
),
},
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.predicates', {
label: i18n.translate('languageDocumentation.documentationESQL.predicates', {
defaultMessage: 'NULL values',
}),
description: (
<Markdown
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.predicates.markdown',
'languageDocumentation.documentationESQL.predicates.markdown',
{
defaultMessage: `### NULL values
For NULL comparison use the \`IS NULL\` and \`IS NOT NULL\` predicates:

View file

@ -13,11 +13,11 @@ import { Markdown } from '@kbn/shared-ux-markdown';
// DO NOT RENAME!
export const functions = {
label: i18n.translate('languageDocumentationPopover.documentationESQL.aggregationFunctions', {
label: i18n.translate('languageDocumentation.documentationESQL.aggregationFunctions', {
defaultMessage: 'Aggregation functions',
}),
description: i18n.translate(
'languageDocumentationPopover.documentationESQL.aggregationFunctionsDocumentationESQLDescription',
'languageDocumentation.documentationESQL.aggregationFunctionsDocumentationESQLDescription',
{
defaultMessage: `These functions can by used with STATS...BY:`,
}
@ -26,7 +26,7 @@ export const functions = {
items: [
// Do not edit manually... automatically generated by scripts/generate_esql_docs.ts
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.avg', {
label: i18n.translate('languageDocumentation.documentationESQL.avg', {
defaultMessage: 'AVG',
}),
description: (
@ -34,10 +34,8 @@ export const functions = {
openLinksInNewTab
readOnly
enableSoftLineBreaks
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.avg.markdown',
{
defaultMessage: `<!--
markdownContent={i18n.translate('languageDocumentation.documentationESQL.avg.markdown', {
defaultMessage: `<!--
This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
-->
@ -49,17 +47,16 @@ export const functions = {
| STATS AVG(height)
\`\`\`
`,
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
ignoreTag: true,
}
)}
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
ignoreTag: true,
})}
/>
),
},
// Do not edit manually... automatically generated by scripts/generate_esql_docs.ts
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.count', {
label: i18n.translate('languageDocumentation.documentationESQL.count', {
defaultMessage: 'COUNT',
}),
description: (
@ -68,7 +65,7 @@ export const functions = {
readOnly
enableSoftLineBreaks
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.count.markdown',
'languageDocumentation.documentationESQL.count.markdown',
{
defaultMessage: `<!--
This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
@ -92,7 +89,7 @@ export const functions = {
},
// Do not edit manually... automatically generated by scripts/generate_esql_docs.ts
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.count_distinct', {
label: i18n.translate('languageDocumentation.documentationESQL.count_distinct', {
defaultMessage: 'COUNT_DISTINCT',
}),
description: (
@ -101,7 +98,7 @@ export const functions = {
readOnly
enableSoftLineBreaks
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.count_distinct.markdown',
'languageDocumentation.documentationESQL.count_distinct.markdown',
{
defaultMessage: `<!--
This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
@ -125,7 +122,7 @@ export const functions = {
},
// Do not edit manually... automatically generated by scripts/generate_esql_docs.ts
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.max', {
label: i18n.translate('languageDocumentation.documentationESQL.max', {
defaultMessage: 'MAX',
}),
description: (
@ -133,10 +130,8 @@ export const functions = {
openLinksInNewTab
readOnly
enableSoftLineBreaks
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.max.markdown',
{
defaultMessage: `<!--
markdownContent={i18n.translate('languageDocumentation.documentationESQL.max.markdown', {
defaultMessage: `<!--
This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
-->
@ -148,17 +143,16 @@ export const functions = {
| STATS MAX(languages)
\`\`\`
`,
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
ignoreTag: true,
}
)}
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
ignoreTag: true,
})}
/>
),
},
// Do not edit manually... automatically generated by scripts/generate_esql_docs.ts
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.median', {
label: i18n.translate('languageDocumentation.documentationESQL.median', {
defaultMessage: 'MEDIAN',
}),
description: (
@ -167,7 +161,7 @@ export const functions = {
readOnly
enableSoftLineBreaks
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.median.markdown',
'languageDocumentation.documentationESQL.median.markdown',
{
defaultMessage: `<!--
This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
@ -192,19 +186,16 @@ export const functions = {
},
// Do not edit manually... automatically generated by scripts/generate_esql_docs.ts
{
label: i18n.translate(
'languageDocumentationPopover.documentationESQL.median_absolute_deviation',
{
defaultMessage: 'MEDIAN_ABSOLUTE_DEVIATION',
}
),
label: i18n.translate('languageDocumentation.documentationESQL.median_absolute_deviation', {
defaultMessage: 'MEDIAN_ABSOLUTE_DEVIATION',
}),
description: (
<Markdown
openLinksInNewTab
readOnly
enableSoftLineBreaks
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.median_absolute_deviation.markdown',
'languageDocumentation.documentationESQL.median_absolute_deviation.markdown',
{
defaultMessage: `<!--
This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
@ -231,7 +222,7 @@ export const functions = {
},
// Do not edit manually... automatically generated by scripts/generate_esql_docs.ts
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.min', {
label: i18n.translate('languageDocumentation.documentationESQL.min', {
defaultMessage: 'MIN',
}),
description: (
@ -239,10 +230,8 @@ export const functions = {
openLinksInNewTab
readOnly
enableSoftLineBreaks
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.min.markdown',
{
defaultMessage: `<!--
markdownContent={i18n.translate('languageDocumentation.documentationESQL.min.markdown', {
defaultMessage: `<!--
This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
-->
@ -254,17 +243,16 @@ export const functions = {
| STATS MIN(languages)
\`\`\`
`,
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
ignoreTag: true,
}
)}
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
ignoreTag: true,
})}
/>
),
},
// Do not edit manually... automatically generated by scripts/generate_esql_docs.ts
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.percentile', {
label: i18n.translate('languageDocumentation.documentationESQL.percentile', {
defaultMessage: 'PERCENTILE',
}),
description: (
@ -273,7 +261,7 @@ export const functions = {
readOnly
enableSoftLineBreaks
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.percentile.markdown',
'languageDocumentation.documentationESQL.percentile.markdown',
{
defaultMessage: `<!--
This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
@ -299,7 +287,7 @@ export const functions = {
},
// Do not edit manually... automatically generated by scripts/generate_esql_docs.ts
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.st_centroid_agg', {
label: i18n.translate('languageDocumentation.documentationESQL.st_centroid_agg', {
defaultMessage: 'ST_CENTROID_AGG',
}),
description: (
@ -308,7 +296,7 @@ export const functions = {
readOnly
enableSoftLineBreaks
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.st_centroid_agg.markdown',
'languageDocumentation.documentationESQL.st_centroid_agg.markdown',
{
defaultMessage: `<!--
This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
@ -332,7 +320,7 @@ export const functions = {
},
// Do not edit manually... automatically generated by scripts/generate_esql_docs.ts
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.sum', {
label: i18n.translate('languageDocumentation.documentationESQL.sum', {
defaultMessage: 'SUM',
}),
description: (
@ -340,10 +328,8 @@ export const functions = {
openLinksInNewTab
readOnly
enableSoftLineBreaks
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.sum.markdown',
{
defaultMessage: `<!--
markdownContent={i18n.translate('languageDocumentation.documentationESQL.sum.markdown', {
defaultMessage: `<!--
This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
-->
@ -355,17 +341,16 @@ export const functions = {
| STATS SUM(languages)
\`\`\`
`,
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
ignoreTag: true,
}
)}
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
ignoreTag: true,
})}
/>
),
},
// Do not edit manually... automatically generated by scripts/generate_esql_docs.ts
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.top', {
label: i18n.translate('languageDocumentation.documentationESQL.top', {
defaultMessage: 'TOP',
}),
description: (
@ -373,10 +358,8 @@ export const functions = {
openLinksInNewTab
readOnly
enableSoftLineBreaks
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.top.markdown',
{
defaultMessage: `<!--
markdownContent={i18n.translate('languageDocumentation.documentationESQL.top.markdown', {
defaultMessage: `<!--
This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
-->
@ -388,17 +371,16 @@ export const functions = {
| STATS top_salaries = TOP(salary, 3, "desc"), top_salary = MAX(salary)
\`\`\`
`,
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
ignoreTag: true,
}
)}
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
ignoreTag: true,
})}
/>
),
},
// Do not edit manually... automatically generated by scripts/generate_esql_docs.ts
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.values', {
label: i18n.translate('languageDocumentation.documentationESQL.values', {
defaultMessage: 'VALUES',
}),
description: (
@ -407,7 +389,7 @@ export const functions = {
readOnly
enableSoftLineBreaks
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.values.markdown',
'languageDocumentation.documentationESQL.values.markdown',
{
defaultMessage: `<!--
This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
@ -433,7 +415,7 @@ export const functions = {
},
// Do not edit manually... automatically generated by scripts/generate_esql_docs.ts
{
label: i18n.translate('languageDocumentationPopover.documentationESQL.weighted_avg', {
label: i18n.translate('languageDocumentation.documentationESQL.weighted_avg', {
defaultMessage: 'WEIGHTED_AVG',
}),
description: (
@ -442,7 +424,7 @@ export const functions = {
readOnly
enableSoftLineBreaks
markdownContent={i18n.translate(
'languageDocumentationPopover.documentationESQL.weighted_avg.markdown',
'languageDocumentation.documentationESQL.weighted_avg.markdown',
{
defaultMessage: `<!--
This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.

View file

@ -24,7 +24,7 @@ export const getESQLDocsSections = async () => {
operators,
} = await import('./esql_documentation_sections');
groups.push({
label: i18n.translate('languageDocumentationPopover.esqlSections.initialSectionLabel', {
label: i18n.translate('languageDocumentation.esqlSections.initialSectionLabel', {
defaultMessage: 'ES|QL',
}),
items: [],

View file

@ -23,7 +23,7 @@ import { useKibana } from '@kbn/kibana-react-plugin/public';
import {
LanguageDocumentationInline,
LanguageDocumentationFlyout,
} from '@kbn/language-documentation-popover';
} from '@kbn/language-documentation';
import { getLimitFromESQLQuery } from '@kbn/esql-utils';
import { type MonacoMessage } from '../helpers';
import { ErrorsWarningsFooterPopover } from './errors_warnings_popover';

View file

@ -18,7 +18,7 @@
"@kbn/es-query",
"@kbn/core",
"@kbn/kibana-react-plugin",
"@kbn/language-documentation-popover",
"@kbn/language-documentation",
"@kbn/test-jest-helpers",
"@kbn/data-plugin",
"@kbn/expressions-plugin",

View file

@ -19,7 +19,7 @@ export const storybookAliases = {
cloud_chat: 'x-pack/plugins/cloud_integrations/cloud_chat/.storybook',
cloud: 'packages/cloud/.storybook',
coloring: 'packages/kbn-coloring/.storybook',
language_documentation_popover: 'packages/kbn-language-documentation-popover/.storybook',
language_documentation_popover: 'packages/kbn-language-documentation/.storybook',
chart_icons: 'packages/kbn-chart-icons/.storybook',
content_management_examples: 'examples/content_management_examples/.storybook',
custom_icons: 'packages/kbn-custom-icons/.storybook',

View file

@ -19,7 +19,7 @@ import {
import { useKibana } from '@kbn/kibana-react-plugin/public';
import { i18n } from '@kbn/i18n';
import { FEEDBACK_LINK } from '@kbn/esql-utils';
import { LanguageDocumentationFlyout } from '@kbn/language-documentation-popover';
import { LanguageDocumentationFlyout } from '@kbn/language-documentation';
import type { IUnifiedSearchPluginServices } from '../types';
export const ESQLMenuPopover = () => {

View file

@ -47,7 +47,7 @@
"@kbn/esql-utils",
"@kbn/react-kibana-mount",
"@kbn/field-utils",
"@kbn/language-documentation-popover"
"@kbn/language-documentation"
],
"exclude": [
"target/**/*",

View file

@ -1100,8 +1100,8 @@
"@kbn/kubernetes-security-plugin/*": ["x-pack/plugins/kubernetes_security/*"],
"@kbn/langchain": ["x-pack/packages/kbn-langchain"],
"@kbn/langchain/*": ["x-pack/packages/kbn-langchain/*"],
"@kbn/language-documentation-popover": ["packages/kbn-language-documentation-popover"],
"@kbn/language-documentation-popover/*": ["packages/kbn-language-documentation-popover/*"],
"@kbn/language-documentation": ["packages/kbn-language-documentation"],
"@kbn/language-documentation/*": ["packages/kbn-language-documentation/*"],
"@kbn/lens-config-builder-example-plugin": ["x-pack/examples/lens_config_builder_example"],
"@kbn/lens-config-builder-example-plugin/*": ["x-pack/examples/lens_config_builder_example/*"],
"@kbn/lens-embeddable-utils": ["packages/kbn-lens-embeddable-utils"],

View file

@ -10,7 +10,7 @@ import { i18n } from '@kbn/i18n';
import {
LanguageDocumentationPopover,
LanguageDocumentationPopoverContent,
} from '@kbn/language-documentation-popover';
} from '@kbn/language-documentation';
import { css } from '@emotion/react';
import {
EuiButtonIcon,

View file

@ -58,7 +58,7 @@
"@kbn/ui-theme",
"@kbn/shared-ux-link-redirect-app",
"@kbn/monaco",
"@kbn/language-documentation-popover",
"@kbn/language-documentation",
"@kbn/core-saved-objects-common",
"@kbn/core-ui-settings-browser",
"@kbn/core-saved-objects-server",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -5450,247 +5450,10 @@
"kibanaOverview.manageData.sectionTitle": "管理您的数据",
"kibanaOverview.more.title": "Elastic 让您事半功倍",
"kibanaOverview.news.title": "最新动态",
"languageDocumentationPopover.documentationESQL.abs": "ABS",
"languageDocumentationPopover.documentationESQL.abs.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ABS\n 返回绝对值。\n\n ```\n ROW number = -1.0 \n | EVAL abs_number = ABS(number)\n ```\n ",
"languageDocumentationPopover.documentationESQL.acos": "ACOS",
"languageDocumentationPopover.documentationESQL.acos.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ACOS\n 返回 `n` 的反余弦作为角度,以弧度表示。\n\n ```\n ROW a=.9\n | EVAL acos=ACOS(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.aggregationFunctions": "聚合函数",
"languageDocumentationPopover.documentationESQL.aggregationFunctionsDocumentationESQLDescription": "这些函数可以与 STATS...BY 搭配使用:",
"languageDocumentationPopover.documentationESQL.asin": "ASIN",
"languageDocumentationPopover.documentationESQL.asin.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ASIN\n 返回输入数字表达式的反正弦\n 作为角度,以弧度表示。\n\n ```\n ROW a=.9\n | EVAL asin=ASIN(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.atan": "ATAN",
"languageDocumentationPopover.documentationESQL.atan.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ATAN\n 返回输入数字表达式的反正切\n 作为角度,以弧度表示。\n\n ```\n ROW a=12.9\n | EVAL atan=ATAN(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.atan2": "ATAN2",
"languageDocumentationPopover.documentationESQL.atan2.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ATAN2\n 笛卡儿平面中正 x 轴\n 与从原点到点 (x , y) 构成的射线之间的角度,以弧度表示。\n\n ```\n ROW y=12.9, x=.6\n | EVAL atan2=ATAN2(y, x)\n ```\n ",
"languageDocumentationPopover.documentationESQL.autoBucketFunction": "BUCKET",
"languageDocumentationPopover.documentationESQL.autoBucketFunction.markdown": "### BUCKET\n用日期时间或数字输入创建值存储桶的分组。存储桶的大小可以直接提供或基于建议的计数和值范围进行选择。\n\n`BUCKET` 以两种模式运行:\n\n1.在此模式下基于存储桶计数建议(四个参数)和范围计算存储桶的大小。\n2.在此模式下直接提供存储桶大小(两个参数)。\n\n使用存储桶的目标数量、起始范围和结束范围`BUCKET` 将选取适当的存储桶大小以生成目标数量或更小数量的存储桶。\n\n例如一年请求多达 20 个存储桶会按每月时间间隔组织数据:\n\n```\nFROM employees\n| WHERE hire_date >= \"1985-01-01T00:00:00Z\" AND hire_date < \"1986-01-01T00:00:00Z\"\n| STATS hire_date = MV_SORT(VALUES(hire_date)) BY month = BUCKET(hire_date, 20, \"1985-01-01T00:00:00Z\", \"1986-01-01T00:00:00Z\")\n| SORT hire_date\n```\n\n**注意**:目标并不是提供存储桶的确切目标数量,而是选择一个范围,最多提供存储桶的目标数量。\n\n可以组合 `BUCKET` 与聚合以创建直方图:\n\n```\nFROM employees\n| WHERE hire_date >= \"1985-01-01T00:00:00Z\" AND hire_date < \"1986-01-01T00:00:00Z\"\n| STATS hires_per_month = COUNT(*) BY month = BUCKET(hire_date, 20, \"1985-01-01T00:00:00Z\", \"1986-01-01T00:00:00Z\")\n| SORT month\n```\n\n**注意**`BUCKET` 不会创建未匹配任何文档的存储桶。因此,上一示例缺少 `1985-03-01` 和其他日期。\n\n如果需要更多存储桶可能导致更小的范围。例如如果一年内最多请求 100 个存储桶,会导致周期为周的存储桶:\n\n```\nFROM employees\n| WHERE hire_date >= \"1985-01-01T00:00:00Z\" AND hire_date < \"1986-01-01T00:00:00Z\"\n| STATS hires_per_week = COUNT(*) BY week = BUCKET(hire_date, 100, \"1985-01-01T00:00:00Z\", \"1986-01-01T00:00:00Z\")\n| SORT week\n```\n\n**注意**`AUTO_BUCKET` 不筛选任何行。它只会使用提供的范围来选取适当的存储桶大小。对于值超出范围的行,它会返回与超出范围的存储桶对应的存储桶值。组合 `BUCKET` 与 `WHERE` 可筛选行。\n\n如果提前已知所需存储桶大小则只需提供它作为第二个参数而忽略范围\n\n```\nFROM employees\n| WHERE hire_date >= \"1985-01-01T00:00:00Z\" AND hire_date < \"1986-01-01T00:00:00Z\"\n| STATS hires_per_week = COUNT(*) BY week = BUCKET(hire_date, 1 week)\n| SORT week\n```\n\n**注意**:提供存储桶大小作为第二个参数时,它必须为持续时间或日期期间。\n\n`BUCKET` 还可对数字字段执行操作。例如,要创建工资直方图:\n\n```\nFROM employees\n| STATS COUNT(*) by bs = BUCKET(salary, 20, 25324, 74999)\n| SORT bs\n```\n\n与前面的有意筛选日期范围示例不同您极少想要筛选数值范围。您必须分别查找最小值和最大值。ES|QL 尚未提供简便方法来自动执行此操作。\n\n如果提前已知所需存储桶大小则可以忽略该范围。只需提供它作为第二个参数即可\n\n```\nFROM employees\n| WHERE hire_date >= \"1985-01-01T00:00:00Z\" AND hire_date < \"1986-01-01T00:00:00Z\"\n| STATS c = COUNT(1) BY b = BUCKET(salary, 5000.)\n| SORT b\n```\n\n**注意**:提供存储桶大小作为第二个参数时,它必须为 **浮点类型**。\n\n这里提供了一个示例用于为过去 24 小时创建小时存储桶,并计算每小时的事件数:\n\n```\nFROM sample_data\n| WHERE @timestamp >= NOW() - 1 day and @timestamp < NOW()\n| STATS COUNT(*) BY bucket = BUCKET(@timestamp, 25, NOW() - 1 day, NOW())\n```\n\n这里提供了一个示例用于为 1985 年创建月度存储桶,并按聘用月份计算平均工资:\n\n```\nFROM employees\n| WHERE hire_date >= \"1985-01-01T00:00:00Z\" AND hire_date < \"1986-01-01T00:00:00Z\"\n| STATS AVG(salary) BY bucket = BUCKET(hire_date, 20, \"1985-01-01T00:00:00Z\", \"1986-01-01T00:00:00Z\")\n| SORT bucket\n```\n\n`BUCKET` 可用在 `STATS …​ BY …` 命令的聚合和分组部分, 前提是在聚合部分中,该函数 **由在分组部分中定义的别名引用**,或使用完全相同的表达式调用。\n\n例如\n\n```\nFROM employees\n| STATS s1 = b1 + 1, s2 = BUCKET(salary / 1000 + 999, 50.) + 2 BY b1 = BUCKET(salary / 100 + 99, 50.), b2 = BUCKET(salary / 1000 + 999, 50.)\n| SORT b1, b2\n| KEEP s1, b1, s2, b2\n```\n ",
"languageDocumentationPopover.documentationESQL.binaryOperators": "二进制运算符",
"languageDocumentationPopover.documentationESQL.binaryOperators.markdown": "### 二进制运算符\n支持这些二进制比较运算符\n\n* 等于:`==`\n* 不等于:`!=`\n* 小于:`<`\n* 小于或等于:`<=`\n* 大于:`>`\n* 大于或等于:`>=`\n* 加:`+`\n* 减:`-`\n* 乘:`*`\n* 除:`/`\n* 取模:`%`\n ",
"languageDocumentationPopover.documentationESQL.booleanOperators": "布尔运算符",
"languageDocumentationPopover.documentationESQL.booleanOperators.markdown": "### 布尔运算符\n支持以下布尔运算符\n\n* `AND`\n* `OR`\n* `NOT`\n ",
"languageDocumentationPopover.documentationESQL.bucket": "BUCKET",
"languageDocumentationPopover.documentationESQL.bucket.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### BUCKET\n 用日期时间或数字输入创建值(存储桶)的分组。\n 存储桶的大小可以直接提供,或基于建议的计数和值范围进行选择。\n\n ```\n FROM employees\n | WHERE hire_date >= \"1985-01-01T00:00:00Z\" AND hire_date < \"1986-01-01T00:00:00Z\"\n | STATS hire_date = MV_SORT(VALUES(hire_date)) BY month = BUCKET(hire_date, 20, \"1985-01-01T00:00:00Z\", \"1986-01-01T00:00:00Z\")\n | SORT hire_date\n ```\n ",
"languageDocumentationPopover.documentationESQL.case": "CASE",
"languageDocumentationPopover.documentationESQL.case.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### CASE\n 接受成对的条件和值。此函数返回属于第一个\n 评估为 `true` 的条件的值。\n\n 如果参数数量为奇数,则最后一个参数为\n 在无条件匹配时返回的默认值。如果参数数量为偶数,且\n 无任何条件匹配,则此函数返回 `null`。\n\n ```\n FROM employees\n | EVAL type = CASE(\n languages <= 1, \"monolingual\",\n languages <= 2, \"bilingual\",\n \"polyglot\")\n | KEEP emp_no, languages, type\n ```\n ",
"languageDocumentationPopover.documentationESQL.castOperator": "Cast (::)",
"languageDocumentationPopover.documentationESQL.castOperator.markdown": "### CAST (`::`)\n`::` 运算符为 `TO_<type>` 类型转换函数提供了实用的替代语法。\n\n例如\n```\nROW ver = CONCAT((\"0\"::INT + 1)::STRING, \".2.3\")::VERSION\n```\n ",
"languageDocumentationPopover.documentationESQL.cbrt": "CBRT",
"languageDocumentationPopover.documentationESQL.cbrt.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### CBRT\n 返回数字的立方根。输入可以为任何数字值,返回值始终为双精度值。\n 无穷大的立方根为 null。\n\n ```\n ROW d = 1000.0\n | EVAL c = cbrt(d)\n ```\n ",
"languageDocumentationPopover.documentationESQL.ceil": "CEIL",
"languageDocumentationPopover.documentationESQL.ceil.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### CEIL\n 将数字四舍五入为最近的整数。\n\n ```\n ROW a=1.8\n | EVAL a=CEIL(a)\n ```\n 注意:对于 `long`(包括无符号值)和 `integer`,这相当于“无操作”。对于 `double`,这会提取最接近整数的 `double` 值,类似于 Math.ceil。\n ",
"languageDocumentationPopover.documentationESQL.cidr_match": "CIDR_MATCH",
"languageDocumentationPopover.documentationESQL.cidr_match.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### CIDR_MATCH\n 如果提供的 IP 包含在所提供的其中一个 CIDR 块中,则返回 true。\n\n ```\n FROM hosts \n | WHERE CIDR_MATCH(ip1, \"127.0.0.2/32\", \"127.0.0.3/32\") \n | KEEP card, host, ip0, ip1\n ```\n ",
"languageDocumentationPopover.documentationESQL.coalesce": "COALESCE",
"languageDocumentationPopover.documentationESQL.coalesce.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### COALESCE\n 返回它的第一个不为 null 的参数。如果所有参数均为 null则返回 `null`。\n\n ```\n ROW a=null, b=\"b\"\n | EVAL COALESCE(a, b)\n ```\n ",
"languageDocumentationPopover.documentationESQL.commandsDescription": "源命令会生成一个表,其中通常包含来自 Elasticsearch 的数据。ES|QL 支持以下源命令。",
"languageDocumentationPopover.documentationESQL.concat": "CONCAT",
"languageDocumentationPopover.documentationESQL.concat.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### CONCAT\n 串联两个或多个字符串。\n\n ```\n FROM employees\n | KEEP first_name, last_name\n | EVAL fullname = CONCAT(first_name, \" \", last_name)\n ```\n ",
"languageDocumentationPopover.documentationESQL.cos": "COS",
"languageDocumentationPopover.documentationESQL.cos.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### COS\n 返回角度的余弦。\n\n ```\n ROW a=1.8 \n | EVAL cos=COS(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.cosh": "COSH",
"languageDocumentationPopover.documentationESQL.cosh.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### COSH\n 返回角度的双曲余弦。\n\n ```\n ROW a=1.8 \n | EVAL cosh=COSH(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.date_diff": "DATE_DIFF",
"languageDocumentationPopover.documentationESQL.date_diff.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### DATE_DIFF\n 从 `endTimestamp` 中减去 `startTimestamp`,并以倍数 `unit` 返回差异。\n 如果 `startTimestamp` 晚于 `endTimestamp`,则返回负值。\n\n ```\n ROW date1 = TO_DATETIME(\"2023-12-02T11:00:00.000Z\"), date2 = TO_DATETIME(\"2023-12-02T11:00:00.001Z\")\n | EVAL dd_ms = DATE_DIFF(\"microseconds\", date1, date2)\n ```\n ",
"languageDocumentationPopover.documentationESQL.date_extract": "DATE_EXTRACT",
"languageDocumentationPopover.documentationESQL.date_extract.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### DATE_EXTRACT\n 提取日期的某些部分,如年、月、日、小时。\n\n ```\n ROW date = DATE_PARSE(\"yyyy-MM-dd\", \"2022-05-06\")\n | EVAL year = DATE_EXTRACT(\"year\", date)\n ```\n ",
"languageDocumentationPopover.documentationESQL.date_format": "DATE_FORMAT",
"languageDocumentationPopover.documentationESQL.date_format.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### DATE_FORMAT\n 以提供的格式返回日期的字符串表示形式。\n\n ```\n FROM employees\n | KEEP first_name, last_name, hire_date\n | EVAL hired = DATE_FORMAT(\"YYYY-MM-dd\", hire_date)\n ```\n ",
"languageDocumentationPopover.documentationESQL.date_parse": "DATE_PARSE",
"languageDocumentationPopover.documentationESQL.date_parse.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### DATE_PARSE\n 通过使用在第一个参数中指定的格式来解析第二个参数,从而返回日期。\n\n ```\n ROW date_string = \"2022-05-06\"\n | EVAL date = DATE_PARSE(\"yyyy-MM-dd\", date_string)\n ```\n ",
"languageDocumentationPopover.documentationESQL.date_trunc": "DATE_TRUNC",
"languageDocumentationPopover.documentationESQL.date_trunc.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### DATE_TRUNC\n 将日期向下舍入到最近的时间间隔。\n\n ```\n FROM employees\n | KEEP first_name, last_name, hire_date\n | EVAL year_hired = DATE_TRUNC(1 year, hire_date)\n ```\n ",
"languageDocumentationPopover.documentationESQL.dissect": "DISSECT",
"languageDocumentationPopover.documentationESQL.dissect.markdown": "### DISSECT\n使用 `DISSECT`,您可以从字符串中提取结构化数据。`DISSECT` 将根据基于分隔符的模式来匹配字符串,并提取指定键作为列。\n\n请参阅[分解处理器文档](https://www.elastic.co/guide/en/elasticsearch/reference/current/dissect-processor.html)了解分解模式的语法。\n\n```\nROW a = \"1953-01-23T12:15:00Z - some text - 127.0.0.1\"\n| DISSECT a \"%'{Y}-%{M}-%{D}T%{h}:%{m}:%{s}Z - %{msg} - %{ip}'\"\n``` ",
"languageDocumentationPopover.documentationESQL.drop": "DROP",
"languageDocumentationPopover.documentationESQL.drop.markdown": "### DROP\n使用 `DROP` 可从表中移除列:\n \n```\nFROM employees\n| DROP height\n```\n\n您不必按名称指定每个列而可以使用通配符丢弃名称匹配某种模式的所有列\n\n```\nFROM employees\n| DROP height*\n```\n ",
"languageDocumentationPopover.documentationESQL.e": "E",
"languageDocumentationPopover.documentationESQL.e.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### E\n 返回 Euler 函数的编号。\n\n ```\n ROW E()\n ```\n ",
"languageDocumentationPopover.documentationESQL.ends_with": "ENDS_WITH",
"languageDocumentationPopover.documentationESQL.ends_with.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ENDS_WITH\n 返回布尔值,指示关键字字符串是否以另一个字符串结尾。\n\n ```\n FROM employees\n | KEEP last_name\n | EVAL ln_E = ENDS_WITH(last_name, \"d\")\n ```\n ",
"languageDocumentationPopover.documentationESQL.enrich": "ENRICH",
"languageDocumentationPopover.documentationESQL.enrich.markdown": "### ENRICH\n您可以使用 `ENRICH` 将来自现有索引的数据添加到传入记录中。它类似于[采集扩充](https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest-enriching-data.html),但作用于查询时间。\n\n```\nROW language_code = \"1\"\n| ENRICH languages_policy\n```\n\n执行 `ENRICH` 需要[扩充策略](https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest-enriching-data.html#enrich-policy)。扩充策略定义一个匹配字段(键字段)和一组扩充字段。\n\n`ENRICH` 将根据匹配字段值在[扩充索引](https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest-enriching-data.html#enrich-index)中查找记录。输入数据集中的匹配键可以使用 `ON <field-name>` 来定义;如果未指定,将对字段名称与在扩充策略中定义的匹配字段相同的字段执行匹配。\n\n```\nROW a = \"1\"\n| ENRICH languages_policy ON a\n```\n\n您可以使用 `WITH <field1>, <field2>...` 语法指定必须将哪些属性(在那些在策略中定义为扩充字段的字段之间)添加到结果中。\n\n```\nROW a = \"1\"\n| ENRICH languages_policy ON a WITH language_name\n```\n\n还可以使用 `WITH new_name=<field1>` 重命名属性\n\n```\nROW a = \"1\"\n| ENRICH languages_policy ON a WITH name = language_name\n```\n\n默认情况下如果未定义任何 `WITH``ENRICH` 会将在扩充策略中定义的所有扩充字段添加到结果中。\n\n如果出现名称冲突新创建的字段将覆盖现有字段。\n ",
"languageDocumentationPopover.documentationESQL.eval": "EVAL",
"languageDocumentationPopover.documentationESQL.eval.markdown": "### EVAL\n`EVAL` 允许您添加新列:\n\n```\nFROM employees\n| KEEP first_name, last_name, height\n| EVAL height_feet = height * 3.281, height_cm = height * 100\n```\n\n如果指定列已存在将丢弃现有列并将新列追加到表后面\n\n```\nFROM employees\n| KEEP first_name, last_name, height\n| EVAL height = height * 3.281\n```\n\n#### 函数\n`EVAL` 支持各种用于计算值的函数。请参阅“函数”了解更多信息。\n ",
"languageDocumentationPopover.documentationESQL.floor": "FLOOR",
"languageDocumentationPopover.documentationESQL.floor.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### FLOOR\n 将数字向下舍入到最近的整数。\n\n ```\n ROW a=1.8\n | EVAL a=FLOOR(a)\n ```\n 注意:对于 `long`(包括无符号值)和 `integer`,这相当于“无操作”。\n 对于 `double`,这会提取最接近整数的 `double` 值,\n 类似于 Math.floor。\n ",
"languageDocumentationPopover.documentationESQL.from": "FROM",
"languageDocumentationPopover.documentationESQL.from_base64": "FROM_BASE64",
"languageDocumentationPopover.documentationESQL.from_base64.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### FROM_BASE64\n 解码 base64 字符串。\n\n ```\n row a = \"ZWxhc3RpYw==\" \n | eval d = from_base64(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.from.markdown": "### FROM\n`FROM` 源命令返回一个表,其中最多包含 10,000 个来自数据流、索引或别名的文档。生成的表中的每一行代表一个文档。每一列对应一个字段,并可以通过该字段的名称进行访问。\n\n```\nFROM employees\n```\n\n您可以使用[日期数学表达式](https://www.elastic.co/guide/en/elasticsearch/reference/current/api-conventions.html#api-date-math-index-names)来引用索引、别名和数据流。这可能对时间序列数据非常有用。\n\n使用逗号分隔列表或通配符可查询多个数据流、索引或别名\n\n```\nFROM employees-00001,employees-*\n```\n\n#### 元数据\n\nES|QL 可访问以下元数据字段:\n\n* `_index`:文档所属的索引。字段类型为 `keyword`.\n* `_id`:源文档的 ID。字段类型为 `keyword`.\n* `_version`:源文档的版本。字段类型为 `long`。\n\n使用 `METADATA` 指令可启用元数据字段:\n\n```\nFROM index [METADATA _index, _id]\n```\n\n元数据字段仅在数据源为索引时可用。因此`FROM` 是唯一支持 `METADATA` 指令的源命令。\n\n启用后这些字段将可用于后续处理命令就像其他索引字段一样\n\n```\nFROM ul_logs, apps [METADATA _index, _version]\n| WHERE id IN (13, 14) AND _version == 1\n| EVAL key = CONCAT(_index, \"_\", TO_STR(id))\n| SORT id, _index\n| KEEP id, _index, _version, key\n```\n\n此外与索引字段类似一旦执行了聚合后续命令将无法再访问元数据字段除非它用作分组字段\n\n```\nFROM employees [METADATA _index, _id]\n| STATS max = MAX(emp_no) BY _index\n```\n ",
"languageDocumentationPopover.documentationESQL.functions": "函数",
"languageDocumentationPopover.documentationESQL.functionsDocumentationESQLDescription": "ROW、EVAL 和 WHERE 支持的函数。",
"languageDocumentationPopover.documentationESQL.greatest": "GREATEST",
"languageDocumentationPopover.documentationESQL.greatest.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### GREATEST\n 返回多个列中的最大值。除了可一次对多个列运行以外,\n 此函数与 `MV_MAX` 类似。\n\n ```\n ROW a = 10, b = 20\n | EVAL g = GREATEST(a, b)\n ```\n 注意:对 `keyword` 或 `text` 字段运行时,此函数将按字母顺序返回最后一个字符串。对 `boolean` 列运行时,如果任何值为 `true`,此函数将返回 `true`。\n ",
"languageDocumentationPopover.documentationESQL.grok": "GROK",
"languageDocumentationPopover.documentationESQL.grok.markdown": "### GROK\n使用 `GROK`,您可以从字符串中提取结构化数据。`GROK` 将基于正则表达式根据模式来匹配字符串,并提取指定模式作为列。\n\n请参阅 [grok 处理器文档](https://www.elastic.co/guide/en/elasticsearch/reference/current/grok-processor.html)了解 grok 模式的语法。\n\n```\nROW a = \"12 15.5 15.6 true\"\n| GROK a \"%'{NUMBER:b:int}' %'{NUMBER:c:float}' %'{NUMBER:d:double}' %'{WORD:e:boolean}'\"\n```\n ",
"languageDocumentationPopover.documentationESQL.groupingFunctions": "分组函数",
"languageDocumentationPopover.documentationESQL.groupingFunctionsDocumentationESQLDescription": "这些分组函数可以与 `STATS...BY` 搭配使用:",
"languageDocumentationPopover.documentationESQL.inOperator": "IN",
"languageDocumentationPopover.documentationESQL.inOperator.markdown": "### IN\n`IN` 运算符允许测试字段或表达式是否等于文本、字段或表达式列表中的元素:\n\n```\nROW a = 1, b = 4, c = 3\n| WHERE c-a IN (3, b / 2, a)\n```\n ",
"languageDocumentationPopover.documentationESQL.ip_prefix": "IP_PREFIX",
"languageDocumentationPopover.documentationESQL.ip_prefix.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### IP_PREFIX\n 截短 IP 至给定的前缀长度。\n\n ```\n row ip4 = to_ip(\"1.2.3.4\"), ip6 = to_ip(\"fe80::cae2:65ff:fece:feb9\")\n | eval ip4_prefix = ip_prefix(ip4, 24, 0), ip6_prefix = ip_prefix(ip6, 0, 112);\n ```\n ",
"languageDocumentationPopover.documentationESQL.keep": "KEEP",
"languageDocumentationPopover.documentationESQL.keep.markdown": "### KEEP\n使用 `KEEP` 命令,您可以指定将返回哪些列以及返回这些列的顺序。\n\n要限制返回的列数请使用列名的逗号分隔列表。将按指定顺序返回这些列\n \n```\nFROM employees\n| KEEP first_name, last_name, height\n```\n\n您不必按名称指定每个列而可以使用通配符返回名称匹配某种模式的所有列\n\n```\nFROM employees\n| KEEP h*\n```\n\n星号通配符 (`*`) 自身将转换为不与其他参数匹配的所有列。此查询将首先返回所有名称以 h 开头的所有列,随后返回所有其他列:\n\n```\nFROM employees\n| KEEP h*, *\n```\n ",
"languageDocumentationPopover.documentationESQL.least": "LEAST",
"languageDocumentationPopover.documentationESQL.least.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### LEAST\n 返回多个列中的最小值。除了可一次对多个列运行以外,此函数与 `MV_MIN` 类似。\n\n ```\n ROW a = 10, b = 20\n | EVAL l = LEAST(a, b)\n ```\n ",
"languageDocumentationPopover.documentationESQL.left": "LEFT",
"languageDocumentationPopover.documentationESQL.left.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### LEFT\n 返回从“字符串”中提取“长度”字符的子字符串,从左侧开始。\n\n ```\n FROM employees\n | KEEP last_name\n | EVAL left = LEFT(last_name, 3)\n | SORT last_name ASC\n | LIMIT 5\n ```\n ",
"languageDocumentationPopover.documentationESQL.length": "LENGTH",
"languageDocumentationPopover.documentationESQL.length.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### LENGTH\n 返回字符串的字符长度。\n\n ```\n FROM employees\n | KEEP first_name, last_name\n | EVAL fn_length = LENGTH(first_name)\n ```\n ",
"languageDocumentationPopover.documentationESQL.limit": "LIMIT",
"languageDocumentationPopover.documentationESQL.limit.markdown": "### LIMIT\n`LIMIT` 处理命令允许您限制行数:\n \n```\nFROM employees\n| LIMIT 5\n```\n ",
"languageDocumentationPopover.documentationESQL.locate": "LOCATE",
"languageDocumentationPopover.documentationESQL.locate.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### LOCATE\n 返回一个整数,指示关键字子字符串在另一字符串中的位置\n\n ```\n row a = \"hello\"\n | eval a_ll = locate(a, \"ll\")\n ```\n ",
"languageDocumentationPopover.documentationESQL.log": "LOG",
"languageDocumentationPopover.documentationESQL.log.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### LOG\n 以某底数返回值的对数。输入可以为任何数字值,返回值始终为双精度值。\n\n 求零、负数的对数,以及底数为一时将返回 `null`,并显示警告。\n\n ```\n ROW base = 2.0, value = 8.0\n | EVAL s = LOG(base, value)\n ```\n ",
"languageDocumentationPopover.documentationESQL.log10": "LOG10",
"languageDocumentationPopover.documentationESQL.log10.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### LOG10\n 以底数 10 返回值的对数。输入可以为任何数字值,返回值始终为双精度值。\n\n 求 0 和负数的对数时将返回 `null`,并显示警告。\n\n ```\n ROW d = 1000.0 \n | EVAL s = LOG10(d)\n ```\n ",
"languageDocumentationPopover.documentationESQL.ltrim": "LTRIM",
"languageDocumentationPopover.documentationESQL.ltrim.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### LTRIM\n 从字符串中移除前导空格。\n\n ```\n ROW message = \" some text \", color = \" red \"\n | EVAL message = LTRIM(message)\n | EVAL color = LTRIM(color)\n | EVAL message = CONCAT(\"'\", message, \"'\")\n | EVAL color = CONCAT(\"'\", color, \"'\")\n ```\n ",
"languageDocumentationPopover.documentationESQL.markdown": "## ES|QL\n\nES|QLElasticsearch 查询语言)查询包含一系列命令,它们用管道字符分隔:`|`。每个查询以**源命令**开头,它会生成一个表,其中通常包含来自 Elasticsearch 的数据。\n\n源命令可后接一个或多个**处理命令**。处理命令可通过添加、移除以及更改行和列来更改前一个命令的输出表。\n\n```\nsource-command\n| processing-command1\n| processing-command2\n```\n\n查询的结果为由最后的处理命令生成的表。 \n ",
"languageDocumentationPopover.documentationESQL.mv_append": "MV_APPEND",
"languageDocumentationPopover.documentationESQL.mv_append.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_APPEND\n 串联两个多值字段的值。\n\n ",
"languageDocumentationPopover.documentationESQL.mv_avg": "MV_AVG",
"languageDocumentationPopover.documentationESQL.mv_avg.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_AVG\n 将多值字段转换为包含所有值的平均值的单值字段。\n\n ```\n ROW a=[3, 5, 1, 6]\n | EVAL avg_a = MV_AVG(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.mv_concat": "MV_CONCAT",
"languageDocumentationPopover.documentationESQL.mv_concat.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_CONCAT\n 将多值字符串表达式转换为单值列,其中包含由分隔符分隔的所有值的串联形式。\n\n ```\n ROW a=[\"foo\", \"zoo\", \"bar\"]\n | EVAL j = MV_CONCAT(a, \", \")\n ```\n ",
"languageDocumentationPopover.documentationESQL.mv_count": "MV_COUNT",
"languageDocumentationPopover.documentationESQL.mv_count.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_COUNT\n 将多值表达式转换为包含值计数的单值列。\n\n ```\n ROW a=[\"foo\", \"zoo\", \"bar\"]\n | EVAL count_a = MV_COUNT(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.mv_dedupe": "MV_DEDUPE",
"languageDocumentationPopover.documentationESQL.mv_dedupe.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_DEDUPE\n 移除多值字段中的重复值。\n\n ```\n ROW a=[\"foo\", \"foo\", \"bar\", \"foo\"]\n | EVAL dedupe_a = MV_DEDUPE(a)\n ```\n 注意:`MV_DEDUPE` 可能但不会始终对列中的值进行排序。\n ",
"languageDocumentationPopover.documentationESQL.mv_first": "MV_FIRST",
"languageDocumentationPopover.documentationESQL.mv_first.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_FIRST\n 将多值表达式转换为包含第一个值的\n 单值列。这在从按已知顺序发出多值列的\n 函数(如 `SPLIT`)中读取数据时尤其有用。\n\n 无法保证从底层存储\n 读取多值字段的顺序。它 *通常* 为升序,但不应\n 依赖于此。如果需要最小值,请使用 `MV_MIN` 而不是\n `MV_FIRST`。`MV_MIN` 针对排序值进行了优化,因此\n 对 `MV_FIRST` 没有性能优势。\n\n ```\n ROW a=\"foo;bar;baz\"\n | EVAL first_a = MV_FIRST(SPLIT(a, \";\"))\n ```\n ",
"languageDocumentationPopover.documentationESQL.mv_last": "MV_LAST",
"languageDocumentationPopover.documentationESQL.mv_last.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_LAST\n 将多值表达式转换为包含最后一个值的单值\n 列。这在从按已知顺序发出多值列的函数\n (如 `SPLIT`)中读取数据时尤其有用。\n\n 无法保证从底层存储\n 读取多值字段的顺序。它 *通常* 为升序,但不应\n 依赖于此。如果需要最大值,请使用 `MV_MAX` 而不是\n `MV_LAST`。`MV_MAX` 针对排序值进行了优化,因此\n 对 `MV_LAST` 没有性能优势。\n\n ```\n ROW a=\"foo;bar;baz\"\n | EVAL last_a = MV_LAST(SPLIT(a, \";\"))\n ```\n ",
"languageDocumentationPopover.documentationESQL.mv_max": "MV_MAX",
"languageDocumentationPopover.documentationESQL.mv_max.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_MAX\n 将多值表达式转换为包含最大值的单值列。\n\n ```\n ROW a=[3, 5, 1]\n | EVAL max_a = MV_MAX(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.mv_median": "MV_MEDIAN",
"languageDocumentationPopover.documentationESQL.mv_median.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_MEDIAN\n 将多值字段转换为包含中位数值的单值字段。\n\n ```\n ROW a=[3, 5, 1]\n | EVAL median_a = MV_MEDIAN(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.mv_min": "MV_MIN",
"languageDocumentationPopover.documentationESQL.mv_min.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_MIN\n 将多值表达式转换为包含最小值的单值列。\n\n ```\n ROW a=[2, 1]\n | EVAL min_a = MV_MIN(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.mv_slice": "MV_SLICE",
"languageDocumentationPopover.documentationESQL.mv_slice.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_SLICE\n 使用起始和结束索引值返回多值字段的子集。\n\n ```\n row a = [1, 2, 2, 3]\n | eval a1 = mv_slice(a, 1), a2 = mv_slice(a, 2, 3)\n ```\n ",
"languageDocumentationPopover.documentationESQL.mv_sort": "MV_SORT",
"languageDocumentationPopover.documentationESQL.mv_sort.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_SORT\n 按字典顺序对多值字段排序。\n\n ```\n ROW a = [4, 2, -3, 2]\n | EVAL sa = mv_sort(a), sd = mv_sort(a, \"DESC\")\n ```\n ",
"languageDocumentationPopover.documentationESQL.mv_sum": "MV_SUM",
"languageDocumentationPopover.documentationESQL.mv_sum.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_SUM\n 将多值字段转换为包含所有值的总和的单值字段。\n\n ```\n ROW a=[3, 5, 6]\n | EVAL sum_a = MV_SUM(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.mv_zip": "MV_ZIP",
"languageDocumentationPopover.documentationESQL.mv_zip.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_ZIP\n 组合两个使用分隔符联接在一起的多值字段中的值。\n\n ```\n ROW a = [\"x\", \"y\", \"z\"], b = [\"1\", \"2\"]\n | EVAL c = mv_zip(a, b, \"-\")\n | KEEP a, b, c\n ```\n ",
"languageDocumentationPopover.documentationESQL.mvExpand": "MV_EXPAND",
"languageDocumentationPopover.documentationESQL.mvExpand.markdown": "### MV_EXPAND\n`MV_EXPAND` 处理命令将多值字段扩展成每个值一行,从而复制其他字段: \n```\nROW a=[1,2,3], b=\"b\", j=[\"a\",\"b\"]\n| MV_EXPAND a\n```\n ",
"languageDocumentationPopover.documentationESQL.now": "NOW",
"languageDocumentationPopover.documentationESQL.now.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### NOW\n 返回当前日期和时间。\n\n ```\n ROW current_date = NOW()\n ```\n ",
"languageDocumentationPopover.documentationESQL.operators": "运算符",
"languageDocumentationPopover.documentationESQL.operatorsDocumentationESQLDescription": "ES|QL 支持以下运算符:",
"languageDocumentationPopover.documentationESQL.pi": "PI",
"languageDocumentationPopover.documentationESQL.pi.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### PI\n 返回 Pi即圆的周长与其直径的比率。\n\n ```\n ROW PI()\n ```\n ",
"languageDocumentationPopover.documentationESQL.pow": "POW",
"languageDocumentationPopover.documentationESQL.pow.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### POW\n 返回提升为 `exponent` 幂的 `base` 的值。\n\n ```\n ROW base = 2.0, exponent = 2\n | EVAL result = POW(base, exponent)\n ```\n 注意:此处仍可能使双精度结果溢出;在该情况下,将返回 null。\n ",
"languageDocumentationPopover.documentationESQL.predicates": "Null 值",
"languageDocumentationPopover.documentationESQL.predicates.markdown": "### NULL 值\n对于 NULL 比较,请使用 `IS NULL` 和 `IS NOT NULL` 谓词:\n\n```\nFROM employees\n| WHERE birth_date IS NULL\n| KEEP first_name, last_name\n| SORT first_name\n| LIMIT 3\n```\n\n```\nFROM employees\n| WHERE is_rehired IS NOT NULL\n| STATS count(emp_no)\n```\n ",
"languageDocumentationPopover.documentationESQL.processingCommands": "处理命令",
"languageDocumentationPopover.documentationESQL.processingCommandsDescription": "处理命令会通过添加、移除或更改行和列来更改输入表。ES|QL 支持以下处理命令。",
"languageDocumentationPopover.documentationESQL.rename": "RENAME",
"languageDocumentationPopover.documentationESQL.rename.markdown": "### RENAME\n请使用 `RENAME` 通过以下语法对列重命名:\n\n```\nRENAME <old-name> AS <new-name>\n```\n\n例如\n\n```\nFROM employees\n| KEEP first_name, last_name, still_hired\n| RENAME still_hired AS employed\n```\n\n如果使用新名称的列已存在将用新列替换该列。\n\n可以使用单个 `RENAME` 命令对多个列重命名:\n\n```\nFROM employees\n| KEEP first_name, last_name\n| RENAME first_name AS fn, last_name AS ln\n```\n ",
"languageDocumentationPopover.documentationESQL.repeat": "REPEAT",
"languageDocumentationPopover.documentationESQL.repeat.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### REPEAT\n 返回通过串联 `string` 自身与指定次数 `number` 构造而成的字符串。\n\n ```\n ROW a = \"Hello!\"\n | EVAL triple_a = REPEAT(a, 3);\n ```\n ",
"languageDocumentationPopover.documentationESQL.replace": "REPLACE",
"languageDocumentationPopover.documentationESQL.replace.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### REPLACE\n 此函数将字符串 `str` 中正则表达式 `regex` 的任何匹配项\n 替换为替代字符串 `newStr`。\n\n ```\n ROW str = \"Hello World\"\n | EVAL str = REPLACE(str, \"World\", \"Universe\")\n | KEEP str\n ```\n ",
"languageDocumentationPopover.documentationESQL.right": "RIGHT",
"languageDocumentationPopover.documentationESQL.right.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### RIGHT\n 返回从“字符串”中提取“长度”字符的子字符串,从右侧开始。\n\n ```\n FROM employees\n | KEEP last_name\n | EVAL right = RIGHT(last_name, 3)\n | SORT last_name ASC\n | LIMIT 5\n ```\n ",
"languageDocumentationPopover.documentationESQL.round": "ROUND",
"languageDocumentationPopover.documentationESQL.round.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ROUND\n 将数字舍入到指定小数位数。\n 默认值为 0即返回最近的整数。如果\n 精确度为负数,则将数字舍入到\n 小数点左侧的位数。\n\n ```\n FROM employees\n | KEEP first_name, last_name, height\n | EVAL height_ft = ROUND(height * 3.281, 1)\n ```\n ",
"languageDocumentationPopover.documentationESQL.row": "ROW",
"languageDocumentationPopover.documentationESQL.row.markdown": "### ROW\n`ROW` 源命令会生成一个行,其中包含一个或多个含有您指定的值的列。这可以用于测试。\n \n```\nROW a = 1, b = \"two\", c = null\n```\n\n请使用方括号创建多值列\n\n```\nROW a = [2, 1]\n```\n\nROW 支持使用函数:\n\n```\nROW a = ROUND(1.23, 0)\n```\n ",
"languageDocumentationPopover.documentationESQL.rtrim": "RTRIM",
"languageDocumentationPopover.documentationESQL.rtrim.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### RTRIM\n 从字符串中移除尾随空格。\n\n ```\n ROW message = \" some text \", color = \" red \"\n | EVAL message = RTRIM(message)\n | EVAL color = RTRIM(color)\n | EVAL message = CONCAT(\"'\", message, \"'\")\n | EVAL color = CONCAT(\"'\", color, \"'\")\n ```\n ",
"languageDocumentationPopover.documentationESQL.show": "SHOW",
"languageDocumentationPopover.documentationESQL.show.markdown": "### SHOW\n`SHOW <item>` 源命令返回有关部署及其功能的信息:\n\n* 使用 `SHOW INFO` 可返回部署的版本、构建日期和哈希。\n* 使用 `SHOW FUNCTIONS` 可返回所有受支持函数的列表和每个函数的概要。\n ",
"languageDocumentationPopover.documentationESQL.signum": "SIGNUM",
"languageDocumentationPopover.documentationESQL.signum.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### SIGNUM\n 返回给定数字的符号。\n 它对负数返回 `-1`,对 `0` 返回 `0`,对正数返回 `1`。\n\n ```\n ROW d = 100.0\n | EVAL s = SIGNUM(d)\n ```\n ",
"languageDocumentationPopover.documentationESQL.sin": "SIN",
"languageDocumentationPopover.documentationESQL.sin.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### SIN\n 返回角度的正弦三角函数。\n\n ```\n ROW a=1.8 \n | EVAL sin=SIN(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.sinh": "SINH",
"languageDocumentationPopover.documentationESQL.sinh.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### SINH\n 返回角度的双曲正弦。\n\n ```\n ROW a=1.8 \n | EVAL sinh=SINH(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.sort": "SORT",
"languageDocumentationPopover.documentationESQL.sort.markdown": "### SORT\n使用 `SORT` 命令可对一个或多个字段上的行排序:\n\n```\nFROM employees\n| KEEP first_name, last_name, height\n| SORT height\n```\n\n默认排序顺序为升序。请使用 `ASC` 或 `DESC` 设置显式排序顺序:\n\n```\nFROM employees\n| KEEP first_name, last_name, height\n| SORT height DESC\n```\n\n如果两个行具有相同的排序键则保留原始顺序。您可以提供其他排序表达式充当连接断路器\n\n```\nFROM employees\n| KEEP first_name, last_name, height\n| SORT height DESC, first_name ASC\n```\n\n#### `null` 值\n默认情况下会将 `null` 值视为大于任何其他值。使用升序排序顺序时,会最后对 `null` 值排序,而使用降序排序顺序时,会首先对 `null` 值排序。您可以通过提供 `NULLS FIRST` 或 `NULLS LAST` 来更改该排序:\n\n```\nFROM employees\n| KEEP first_name, last_name, height\n| SORT first_name ASC NULLS FIRST\n```\n ",
"languageDocumentationPopover.documentationESQL.sourceCommands": "源命令",
"languageDocumentationPopover.documentationESQL.split": "SPLIT",
"languageDocumentationPopover.documentationESQL.split.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### SPLIT\n 将单值字符串拆分成多个字符串。\n\n ```\n ROW words=\"foo;bar;baz;qux;quux;corge\"\n | EVAL word = SPLIT(words, \";\")\n ```\n ",
"languageDocumentationPopover.documentationESQL.sqrt": "SQRT",
"languageDocumentationPopover.documentationESQL.sqrt.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### SQRT\n 返回数字的平方根。输入可以为任何数字值,返回值始终为双精度值。\n 负数和无穷大的平方根为 null。\n\n ```\n ROW d = 100.0\n | EVAL s = SQRT(d)\n ```\n ",
"languageDocumentationPopover.documentationESQL.st_contains": "ST_CONTAINS",
"languageDocumentationPopover.documentationESQL.st_contains.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ST_CONTAINS\n 返回第一个几何形状是否包含第二个几何形状。\n 这是 `ST_WITHIN` 函数的反向函数。\n\n ```\n FROM airport_city_boundaries\n | WHERE ST_CONTAINS(city_boundary, TO_GEOSHAPE(\"POLYGON((109.35 18.3, 109.45 18.3, 109.45 18.4, 109.35 18.4, 109.35 18.3))\"))\n | KEEP abbrev, airport, region, city, city_location\n ```\n ",
"languageDocumentationPopover.documentationESQL.st_disjoint": "ST_DISJOINT",
"languageDocumentationPopover.documentationESQL.st_disjoint.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ST_DISJOINT\n 返回两个几何图形或几何图形列是否不相交。\n 这是 `ST_INTERSECTS` 函数的反向函数。\n 从数学上讲ST_Disjoint(A, B) ⇔ A ⋂ B = ∅\n\n ```\n FROM airport_city_boundaries\n | WHERE ST_DISJOINT(city_boundary, TO_GEOSHAPE(\"POLYGON((-10 -60, 120 -60, 120 60, -10 60, -10 -60))\"))\n | KEEP abbrev, airport, region, city, city_location\n ```\n ",
"languageDocumentationPopover.documentationESQL.st_distance": "ST_DISTANCE",
"languageDocumentationPopover.documentationESQL.st_distance.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ST_DISTANCE\n 计算两点之间的距离。\n 对于笛卡尔几何形状,这是以相同单位作为原始坐标时的毕达哥拉斯距离。\n 对于地理几何形状而言,这是沿着地球大圆的圆周距离(以米为单位)。\n\n ```\n FROM airports\n | WHERE abbrev == \"CPH\"\n | EVAL distance = ST_DISTANCE(location, city_location)\n | KEEP abbrev, name, location, city_location, distance\n ```\n ",
"languageDocumentationPopover.documentationESQL.st_intersects": "ST_INTERSECTS",
"languageDocumentationPopover.documentationESQL.st_intersects.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ST_INTERSECTS\n 如果两个几何形状相交,则返回 true。\n 如果它们有任何共同点,包括其内点\n (沿线的点或多边形内的点),则表示它们相交。\n 这是 `ST_DISJOINT` 函数的反向函数。\n 从数学上讲ST_Intersects(A, B) ⇔ A ⋂ B ≠ ∅\n\n ```\n FROM airports\n | WHERE ST_INTERSECTS(location, TO_GEOSHAPE(\"POLYGON((42 14, 43 14, 43 15, 42 15, 42 14))\"))\n ```\n ",
"languageDocumentationPopover.documentationESQL.st_within": "ST_WITHIN",
"languageDocumentationPopover.documentationESQL.st_within.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ST_WITHIN\n 返回第一个几何形状是否在第二个几何形状内。\n 这是 `ST_CONTAINS` 函数的反向函数。\n\n ```\n FROM airport_city_boundaries\n | WHERE ST_WITHIN(city_boundary, TO_GEOSHAPE(\"POLYGON((109.1 18.15, 109.6 18.15, 109.6 18.65, 109.1 18.65, 109.1 18.15))\"))\n | KEEP abbrev, airport, region, city, city_location\n ```\n ",
"languageDocumentationPopover.documentationESQL.st_x": "ST_X",
"languageDocumentationPopover.documentationESQL.st_x.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ST_X\n 从提供的点中提取 `x` 坐标。\n 如果点的类型为 `geo_point`,则这等同于提取 `longitude` 值。\n\n ```\n ROW point = TO_GEOPOINT(\"POINT(42.97109629958868 14.7552534006536)\")\n | EVAL x = ST_X(point), y = ST_Y(point)\n ```\n ",
"languageDocumentationPopover.documentationESQL.st_y": "ST_Y",
"languageDocumentationPopover.documentationESQL.st_y.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ST_Y\n 从提供的点中提取 `y` 坐标。\n 如果点的类型为 `geo_point`,则这等同于提取 `latitude` 值。\n\n ```\n ROW point = TO_GEOPOINT(\"POINT(42.97109629958868 14.7552534006536)\")\n | EVAL x = ST_X(point), y = ST_Y(point)\n ```\n ",
"languageDocumentationPopover.documentationESQL.starts_with": "STARTS_WITH",
"languageDocumentationPopover.documentationESQL.starts_with.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### STARTS_WITH\n 返回指示关键字字符串是否以另一个字符串开头的布尔值。\n\n ```\n FROM employees\n | KEEP last_name\n | EVAL ln_S = STARTS_WITH(last_name, \"B\")\n ```\n ",
"languageDocumentationPopover.documentationESQL.statsby": "STATS ...BY",
"languageDocumentationPopover.documentationESQL.statsby.markdown": "### STATS ...BY\n使用 `STATS ...BY` 可根据公共值对行分组,并计算已分组行中的一个或多个聚合值。\n\n**示例**\n\n```\nFROM employees\n| STATS count = COUNT(emp_no) BY languages\n| SORT languages\n```\n\n如果省略 `BY`,输出表实际将包含一行,其中为应用于整个数据集的聚合:\n\n```\nFROM employees\n| STATS avg_lang = AVG(languages)\n```\n\n可以计算多个值\n\n```\nFROM employees\n| STATS avg_lang = AVG(languages), max_lang = MAX(languages)\n```\n\n也可以按多个值分组仅长整型和关键字家族字段支持\n\n```\nFROM employees\n| EVAL hired = DATE_FORMAT(hire_date, \"YYYY\")\n| STATS avg_salary = AVG(salary) BY hired, languages.long\n| EVAL avg_salary = ROUND(avg_salary)\n| SORT hired, languages.long\n```\n\n请参阅**聚合函数**获取可与 `STATS ...BY` 搭配使用的函数列表。\n\n聚合函数和分组表达式均接受其他函数。这在对多值列使用 `STATS...BY` 时有用。例如,要计算平均工资变动,可以首先使用 `MV_AVG` 对每名员工的多个值求平均值,然后将结果用于 `AVG` 函数:\n\n```\nFROM employees\n| STATS avg_salary_change = AVG(MV_AVG(salary_change))\n```\n\n按表达式分组的示例为根据员工姓氏的第一个字母对其进行分组\n\n```\nFROM employees\n| STATS my_count = COUNT() BY LEFT(last_name, 1)\n| SORT `LEFT(last_name, 1)`\n```\n\n指定输出列名称为可选操作。如果未指定新列名称等于该表达式。以下查询将返回名为 `AVG(salary)` 的列:\n\n```\nFROM employees\n| STATS AVG(salary)\n```\n\n由于此名称包含特殊字符在后续命令中使用该名称时需要用反撇号 (`) 引用它:\n\n```\nFROM employees\n| STATS AVG(salary)\n| EVAL avg_salary_rounded = ROUND(`AVG(salary)`)\n```\n\n**注意**:不包含任何组的 `STATS` 比添加组更快。\n\n**注意**:当前,根据单一表达式进行分组比根据许多表达式进行分组更为优化。\n ",
"languageDocumentationPopover.documentationESQL.stringOperators": "LIKE 和 RLIKE",
"languageDocumentationPopover.documentationESQL.stringOperators.markdown": "### LIKE 和 RLIKE\n使用通配符或正则表达式比较字符串时请使用 `LIKE` 或 `RLIKE`\n\n使用 `LIKE` 时,可使用通配符来匹配字符串。支持以下通配符字符:\n\n* `*` 匹配零个或更多字符。\n* `?` 匹配一个字符。\n\n```\nFROM employees\n| WHERE first_name LIKE \"?b*\"\n| KEEP first_name, last_name\n```\n\n使用 `RLIKE` 时,可使用正则表达式来匹配字符串:\n\n```\nFROM employees\n| WHERE first_name RLIKE \".leja.*\"\n| KEEP first_name, last_name\n```\n ",
"languageDocumentationPopover.documentationESQL.substring": "SUBSTRING",
"languageDocumentationPopover.documentationESQL.substring.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### SUBSTRING\n 返回字符串的子字符串,用起始位置和可选长度指定\n\n ```\n FROM employees\n | KEEP last_name\n | EVAL ln_sub = SUBSTRING(last_name, 1, 3)\n ```\n ",
"languageDocumentationPopover.documentationESQL.tan": "TAN",
"languageDocumentationPopover.documentationESQL.tan.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TAN\n 返回角度的正切三角函数。\n\n ```\n ROW a=1.8 \n | EVAL tan=TAN(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.tanh": "TANH",
"languageDocumentationPopover.documentationESQL.tanh.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TANH\n 返回角度的双曲正切函数。\n\n ```\n ROW a=1.8 \n | EVAL tanh=TANH(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.tau": "TAU",
"languageDocumentationPopover.documentationESQL.tau.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TAU\n 返回圆的圆周长与其半径的比率。\n\n ```\n ROW TAU()\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_base64": "TO_BASE64",
"languageDocumentationPopover.documentationESQL.to_base64.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_BASE64\n 将字符串编码为 base64 字符串。\n\n ```\n row a = \"elastic\" \n | eval e = to_base64(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_boolean": "TO_BOOLEAN",
"languageDocumentationPopover.documentationESQL.to_boolean.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_BOOLEAN\n 将输入值转换为布尔值。\n 字符串值 *true* 将不区分大小写并被转换为布尔值 *true*。\n 对于任何其他值,包括空字符串,此函数将返回 *false*。\n 数字值 *0* 将转换为 *false*,任何其他值将转换为 *true*。\n\n ```\n ROW str = [\"true\", \"TRuE\", \"false\", \"\", \"yes\", \"1\"]\n | EVAL bool = TO_BOOLEAN(str)\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_cartesianpoint": "TO_CARTESIANPOINT",
"languageDocumentationPopover.documentationESQL.to_cartesianpoint.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_CARTESIANPOINT\n 将输入值转换为 `cartesian_point` 值。\n 字符串只有符合 WKT 点格式时,才能成功转换。\n\n ```\n ROW wkt = [\"POINT(4297.11 -1475.53)\", \"POINT(7580.93 2272.77)\"]\n | MV_EXPAND wkt\n | EVAL pt = TO_CARTESIANPOINT(wkt)\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_cartesianshape": "TO_CARTESIANSHAPE",
"languageDocumentationPopover.documentationESQL.to_cartesianshape.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_CARTESIANSHAPE\n 将输入值转换为 `cartesian_shape` 值。\n 字符串只有符合 WKT 格式时,才能成功转换。\n\n ```\n ROW wkt = [\"POINT(4297.11 -1475.53)\", \"POLYGON ((3339584.72 1118889.97, 4452779.63 4865942.27, 2226389.81 4865942.27, 1113194.90 2273030.92, 3339584.72 1118889.97))\"]\n | MV_EXPAND wkt\n | EVAL geom = TO_CARTESIANSHAPE(wkt)\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_datetime": "TO_DATETIME",
"languageDocumentationPopover.documentationESQL.to_datetime.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_DATETIME\n 将输入值转换为日期值。\n 仅当字符串采用 `yyyy-MM-dd'T'HH:mm:ss.SSS'Z'` 格式时,才可进行成功转换。\n 要转换其他格式的日期,请使用 `DATE_PARSE`。\n\n ```\n ROW string = [\"1953-09-02T00:00:00.000Z\", \"1964-06-02T00:00:00.000Z\", \"1964-06-02 00:00:00\"]\n | EVAL datetime = TO_DATETIME(string)\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_degrees": "TO_DEGREES",
"languageDocumentationPopover.documentationESQL.to_degrees.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_DEGREES\n 将弧度转换为度数。\n\n ```\n ROW rad = [1.57, 3.14, 4.71]\n | EVAL deg = TO_DEGREES(rad)\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_double": "TO_DOUBLE",
"languageDocumentationPopover.documentationESQL.to_double.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_DOUBLE\n 将输入值转换为双精度值。如果输入参数为日期类型,\n 会将其值解析为自 Unix epoch 以来的毫秒数,\n 并转换为双精度值。布尔值 *true* 将转换为双精度值 *1.0**false* 转换为 *0.0*。\n\n ```\n ROW str1 = \"5.20128E11\", str2 = \"foo\"\n | EVAL dbl = TO_DOUBLE(\"520128000000\"), dbl1 = TO_DOUBLE(str1), dbl2 = TO_DOUBLE(str2)\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_geopoint": "TO_GEOPOINT",
"languageDocumentationPopover.documentationESQL.to_geopoint.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_GEOPOINT\n 将输入值转换为 `geo_point` 值。\n 字符串只有符合 WKT 点格式时,才能成功转换。\n\n ```\n ROW wkt = \"POINT(42.97109630194 14.7552534413725)\"\n | EVAL pt = TO_GEOPOINT(wkt)\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_geoshape": "TO_GEOSHAPE",
"languageDocumentationPopover.documentationESQL.to_geoshape.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_GEOSHAPE\n 将输入值转换为 `geo_shape` 值。\n 字符串只有符合 WKT 格式时,才能成功转换。\n\n ```\n ROW wkt = \"POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))\"\n | EVAL geom = TO_GEOSHAPE(wkt)\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_integer": "TO_INTEGER",
"languageDocumentationPopover.documentationESQL.to_integer.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_INTEGER\n 将输入值转换为整数值。\n 如果输入参数为日期类型,会将其值解析为自 Unix epoch 以来\n 的毫秒数,并转换为整数。\n 布尔值 *true* 将转换为整数 *1**false* 转换为 *0*。\n\n ```\n ROW long = [5013792, 2147483647, 501379200000]\n | EVAL int = TO_INTEGER(long)\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_ip": "TO_IP",
"languageDocumentationPopover.documentationESQL.to_ip.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_IP\n 将输入字符串转换为 IP 值。\n\n ```\n ROW str1 = \"1.1.1.1\", str2 = \"foo\"\n | EVAL ip1 = TO_IP(str1), ip2 = TO_IP(str2)\n | WHERE CIDR_MATCH(ip1, \"1.0.0.0/8\")\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_long": "TO_LONG",
"languageDocumentationPopover.documentationESQL.to_long.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_LONG\n 将输入值转换为长整型值。如果输入参数为日期类型,\n 会将其值解析为自 Unix epoch 以来的毫秒数,并转换为长整型值。\n 布尔值 *true* 将转换为长整型值 *1**false* 转换为 *0*。\n\n ```\n ROW str1 = \"2147483648\", str2 = \"2147483648.2\", str3 = \"foo\"\n | EVAL long1 = TO_LONG(str1), long2 = TO_LONG(str2), long3 = TO_LONG(str3)\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_lower": "TO_LOWER",
"languageDocumentationPopover.documentationESQL.to_lower.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_LOWER\n 返回一个新字符串,表示已将输入字符串转为小写。\n\n ```\n ROW message = \"Some Text\"\n | EVAL message_lower = TO_LOWER(message)\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_radians": "TO_RADIANS",
"languageDocumentationPopover.documentationESQL.to_radians.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_RADIANS\n 将度数转换为弧度。\n\n ```\n ROW deg = [90.0, 180.0, 270.0]\n | EVAL rad = TO_RADIANS(deg)\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_string": "TO_STRING",
"languageDocumentationPopover.documentationESQL.to_string.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_STRING\n 将输入值转换为字符串。\n\n ```\n ROW a=10\n | EVAL j = TO_STRING(a)\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_unsigned_long": "TO_UNSIGNED_LONG",
"languageDocumentationPopover.documentationESQL.to_unsigned_long.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_UNSIGNED_LONG\n 将输入值转换为无符号长整型值。如果输入参数为日期类型,\n 会将其值解析为自 Unix epoch 以来的毫秒数,并转换为无符号长整型值。\n 布尔值 *true* 将转换为无符号长整型值 *1**false* 转换为 *0*。\n\n ```\n ROW str1 = \"2147483648\", str2 = \"2147483648.2\", str3 = \"foo\"\n | EVAL long1 = TO_UNSIGNED_LONG(str1), long2 = TO_ULONG(str2), long3 = TO_UL(str3)\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_upper": "TO_UPPER",
"languageDocumentationPopover.documentationESQL.to_upper.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_UPPER\n 返回一个新字符串,表示已将输入字符串转为大写。\n\n ```\n ROW message = \"Some Text\"\n | EVAL message_upper = TO_UPPER(message)\n ```\n ",
"languageDocumentationPopover.documentationESQL.to_version": "TO_VERSION",
"languageDocumentationPopover.documentationESQL.to_version.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_VERSION\n 将输入字符串转换为版本值。\n\n ```\n ROW v = TO_VERSION(\"1.2.3\")\n ```\n ",
"languageDocumentationPopover.documentationESQL.trim": "TRIM",
"languageDocumentationPopover.documentationESQL.trim.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TRIM\n 从字符串中移除前导和尾随空格。\n\n ```\n ROW message = \" some text \", color = \" red \"\n | EVAL message = TRIM(message)\n | EVAL color = TRIM(color)\n ```\n ",
"languageDocumentationPopover.documentationESQL.where": "WHERE",
"languageDocumentationPopover.documentationESQL.where.markdown": "### WHERE\n使用 `WHERE` 可生成一个表,其中包含输入表中所提供的条件评估为 `true` 的所有行:\n \n```\nFROM employees\n| KEEP first_name, last_name, still_hired\n| WHERE still_hired == true\n```\n\n#### 运算符\n\n请参阅**运算符**了解所支持的运算符的概览。\n\n#### 函数\n`WHERE` 支持各种用于计算值的函数。请参阅**函数**了解更多信息。\n ",
"languageDocumentationPopover.documentationLinkLabel": "查看整个文档",
"languageDocumentationPopover.header": "{language} 参考",
"languageDocumentationPopover.searchPlaceholder": "搜索",
"languageDocumentationPopover.tooltip": "{lang} 参考",
"languageDocumentation.documentationLinkLabel": "查看整个文档",
"languageDocumentation.header": "{language} 参考",
"languageDocumentation.searchPlaceholder": "搜索",
"languageDocumentation.tooltip": "{lang} 参考",
"lensFormulaDocs.avg": "平均值",
"lensFormulaDocs.boolean": "布尔值",
"lensFormulaDocs.cardinality": "唯一计数",
@ -7327,17 +7090,253 @@
"telemetry.usageCollectionConstant": "使用情况收集",
"telemetry.usageDataTitle": "使用情况收集",
"textBasedEditor.query.textBasedLanguagesEditor.aborted": "请求已中止",
"languageDocumentation.documentationESQL.aggregationFunctions": "聚合函数",
"languageDocumentation.documentationESQL.aggregationFunctionsDocumentationESQLDescription": "这些函数可以与 STATS...BY 搭配使用:",
"textBasedEditor.query.textBasedLanguagesEditor.cancel": "取消",
"textBasedEditor.query.textBasedLanguagesEditor.collapseLabel": "折叠",
"languageDocumentation.documentationESQL.commandsDescription": "源命令会生成一个表,其中通常包含来自 Elasticsearch 的数据。ES|QL 支持以下源命令。",
"textBasedEditor.query.textBasedLanguagesEditor.disableWordWrapLabel": "移除管道符上的换行符",
"languageDocumentation.documentationESQL.abs": "ABS",
"languageDocumentation.documentationESQL.abs.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ABS\n 返回绝对值。\n\n ```\n ROW number = -1.0 \n | EVAL abs_number = ABS(number)\n ```\n ",
"languageDocumentation.documentationESQL.acos": "ACOS",
"languageDocumentation.documentationESQL.acos.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ACOS\n 返回 `n` 的反余弦作为角度,以弧度表示。\n\n ```\n ROW a=.9\n | EVAL acos=ACOS(a)\n ```\n ",
"languageDocumentation.documentationESQL.asin": "ASIN",
"languageDocumentation.documentationESQL.asin.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ASIN\n 返回输入数字表达式的反正弦\n 作为角度,以弧度表示。\n\n ```\n ROW a=.9\n | EVAL asin=ASIN(a)\n ```\n ",
"languageDocumentation.documentationESQL.atan": "ATAN",
"languageDocumentation.documentationESQL.atan.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ATAN\n 返回输入数字表达式的反正切\n 作为角度,以弧度表示。\n\n ```\n ROW a=12.9\n | EVAL atan=ATAN(a)\n ```\n ",
"languageDocumentation.documentationESQL.atan2": "ATAN2",
"languageDocumentation.documentationESQL.atan2.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ATAN2\n 笛卡儿平面中正 x 轴\n 与从原点到点 (x , y) 构成的射线之间的角度,以弧度表示。\n\n ```\n ROW y=12.9, x=.6\n | EVAL atan2=ATAN2(y, x)\n ```\n ",
"languageDocumentation.documentationESQL.autoBucketFunction": "BUCKET",
"languageDocumentation.documentationESQL.autoBucketFunction.markdown": "### BUCKET\n用日期时间或数字输入创建值存储桶的分组。存储桶的大小可以直接提供或基于建议的计数和值范围进行选择。\n\n`BUCKET` 以两种模式运行:\n\n1.在此模式下基于存储桶计数建议(四个参数)和范围计算存储桶的大小。\n2.在此模式下直接提供存储桶大小(两个参数)。\n\n使用存储桶的目标数量、起始范围和结束范围`BUCKET` 将选取适当的存储桶大小以生成目标数量或更小数量的存储桶。\n\n例如一年请求多达 20 个存储桶会按每月时间间隔组织数据:\n\n```\nFROM employees\n| WHERE hire_date >= \"1985-01-01T00:00:00Z\" AND hire_date < \"1986-01-01T00:00:00Z\"\n| STATS hire_date = MV_SORT(VALUES(hire_date)) BY month = BUCKET(hire_date, 20, \"1985-01-01T00:00:00Z\", \"1986-01-01T00:00:00Z\")\n| SORT hire_date\n```\n\n**注意**:目标并不是提供存储桶的确切目标数量,而是选择一个范围,最多提供存储桶的目标数量。\n\n可以组合 `BUCKET` 与聚合以创建直方图:\n\n```\nFROM employees\n| WHERE hire_date >= \"1985-01-01T00:00:00Z\" AND hire_date < \"1986-01-01T00:00:00Z\"\n| STATS hires_per_month = COUNT(*) BY month = BUCKET(hire_date, 20, \"1985-01-01T00:00:00Z\", \"1986-01-01T00:00:00Z\")\n| SORT month\n```\n\n**注意**`BUCKET` 不会创建未匹配任何文档的存储桶。因此,上一示例缺少 `1985-03-01` 和其他日期。\n\n如果需要更多存储桶可能导致更小的范围。例如如果一年内最多请求 100 个存储桶,会导致周期为周的存储桶:\n\n```\nFROM employees\n| WHERE hire_date >= \"1985-01-01T00:00:00Z\" AND hire_date < \"1986-01-01T00:00:00Z\"\n| STATS hires_per_week = COUNT(*) BY week = BUCKET(hire_date, 100, \"1985-01-01T00:00:00Z\", \"1986-01-01T00:00:00Z\")\n| SORT week\n```\n\n**注意**`AUTO_BUCKET` 不筛选任何行。它只会使用提供的范围来选取适当的存储桶大小。对于值超出范围的行,它会返回与超出范围的存储桶对应的存储桶值。组合 `BUCKET` 与 `WHERE` 可筛选行。\n\n如果提前已知所需存储桶大小则只需提供它作为第二个参数而忽略范围\n\n```\nFROM employees\n| WHERE hire_date >= \"1985-01-01T00:00:00Z\" AND hire_date < \"1986-01-01T00:00:00Z\"\n| STATS hires_per_week = COUNT(*) BY week = BUCKET(hire_date, 1 week)\n| SORT week\n```\n\n**注意**:提供存储桶大小作为第二个参数时,它必须为持续时间或日期期间。\n\n`BUCKET` 还可对数字字段执行操作。例如,要创建工资直方图:\n\n```\nFROM employees\n| STATS COUNT(*) by bs = BUCKET(salary, 20, 25324, 74999)\n| SORT bs\n```\n\n与前面的有意筛选日期范围示例不同您极少想要筛选数值范围。您必须分别查找最小值和最大值。ES|QL 尚未提供简便方法来自动执行此操作。\n\n如果提前已知所需存储桶大小则可以忽略该范围。只需提供它作为第二个参数即可\n\n```\nFROM employees\n| WHERE hire_date >= \"1985-01-01T00:00:00Z\" AND hire_date < \"1986-01-01T00:00:00Z\"\n| STATS c = COUNT(1) BY b = BUCKET(salary, 5000.)\n| SORT b\n```\n\n**注意**:提供存储桶大小作为第二个参数时,它必须为 **浮点类型**。\n\n这里提供了一个示例用于为过去 24 小时创建小时存储桶,并计算每小时的事件数:\n\n```\nFROM sample_data\n| WHERE @timestamp >= NOW() - 1 day and @timestamp < NOW()\n| STATS COUNT(*) BY bucket = BUCKET(@timestamp, 25, NOW() - 1 day, NOW())\n```\n\n这里提供了一个示例用于为 1985 年创建月度存储桶,并按聘用月份计算平均工资:\n\n```\nFROM employees\n| WHERE hire_date >= \"1985-01-01T00:00:00Z\" AND hire_date < \"1986-01-01T00:00:00Z\"\n| STATS AVG(salary) BY bucket = BUCKET(hire_date, 20, \"1985-01-01T00:00:00Z\", \"1986-01-01T00:00:00Z\")\n| SORT bucket\n```\n\n`BUCKET` 可用在 `STATS …​ BY …` 命令的聚合和分组部分, 前提是在聚合部分中,该函数 **由在分组部分中定义的别名引用**,或使用完全相同的表达式调用。\n\n例如\n\n```\nFROM employees\n| STATS s1 = b1 + 1, s2 = BUCKET(salary / 1000 + 999, 50.) + 2 BY b1 = BUCKET(salary / 100 + 99, 50.), b2 = BUCKET(salary / 1000 + 999, 50.)\n| SORT b1, b2\n| KEEP s1, b1, s2, b2\n```\n ",
"languageDocumentation.documentationESQL.binaryOperators": "二进制运算符",
"languageDocumentation.documentationESQL.binaryOperators.markdown": "### 二进制运算符\n支持这些二进制比较运算符\n\n* 等于:`==`\n* 不等于:`!=`\n* 小于:`<`\n* 小于或等于:`<=`\n* 大于:`>`\n* 大于或等于:`>=`\n* 加:`+`\n* 减:`-`\n* 乘:`*`\n* 除:`/`\n* 取模:`%`\n ",
"languageDocumentation.documentationESQL.booleanOperators": "布尔运算符",
"languageDocumentation.documentationESQL.booleanOperators.markdown": "### 布尔运算符\n支持以下布尔运算符\n\n* `AND`\n* `OR`\n* `NOT`\n ",
"languageDocumentation.documentationESQL.bucket": "BUCKET",
"languageDocumentation.documentationESQL.bucket.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### BUCKET\n 用日期时间或数字输入创建值(存储桶)的分组。\n 存储桶的大小可以直接提供,或基于建议的计数和值范围进行选择。\n\n ```\n FROM employees\n | WHERE hire_date >= \"1985-01-01T00:00:00Z\" AND hire_date < \"1986-01-01T00:00:00Z\"\n | STATS hire_date = MV_SORT(VALUES(hire_date)) BY month = BUCKET(hire_date, 20, \"1985-01-01T00:00:00Z\", \"1986-01-01T00:00:00Z\")\n | SORT hire_date\n ```\n ",
"languageDocumentation.documentationESQL.case": "CASE",
"languageDocumentation.documentationESQL.case.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### CASE\n 接受成对的条件和值。此函数返回属于第一个\n 评估为 `true` 的条件的值。\n\n 如果参数数量为奇数,则最后一个参数为\n 在无条件匹配时返回的默认值。如果参数数量为偶数,且\n 无任何条件匹配,则此函数返回 `null`。\n\n ```\n FROM employees\n | EVAL type = CASE(\n languages <= 1, \"monolingual\",\n languages <= 2, \"bilingual\",\n \"polyglot\")\n | KEEP emp_no, languages, type\n ```\n ",
"languageDocumentation.documentationESQL.castOperator": "Cast (::)",
"languageDocumentation.documentationESQL.castOperator.markdown": "### CAST (`::`)\n`::` 运算符为 `TO_<type>` 类型转换函数提供了实用的替代语法。\n\n例如\n```\nROW ver = CONCAT((\"0\"::INT + 1)::STRING, \".2.3\")::VERSION\n```\n ",
"languageDocumentation.documentationESQL.cbrt": "CBRT",
"languageDocumentation.documentationESQL.cbrt.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### CBRT\n 返回数字的立方根。输入可以为任何数字值,返回值始终为双精度值。\n 无穷大的立方根为 null。\n\n ```\n ROW d = 1000.0\n | EVAL c = cbrt(d)\n ```\n ",
"languageDocumentation.documentationESQL.ceil": "CEIL",
"languageDocumentation.documentationESQL.ceil.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### CEIL\n 将数字四舍五入为最近的整数。\n\n ```\n ROW a=1.8\n | EVAL a=CEIL(a)\n ```\n 注意:对于 `long`(包括无符号值)和 `integer`,这相当于“无操作”。对于 `double`,这会提取最接近整数的 `double` 值,类似于 Math.ceil。\n ",
"languageDocumentation.documentationESQL.cidr_match": "CIDR_MATCH",
"languageDocumentation.documentationESQL.cidr_match.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### CIDR_MATCH\n 如果提供的 IP 包含在所提供的其中一个 CIDR 块中,则返回 true。\n\n ```\n FROM hosts \n | WHERE CIDR_MATCH(ip1, \"127.0.0.2/32\", \"127.0.0.3/32\") \n | KEEP card, host, ip0, ip1\n ```\n ",
"languageDocumentation.documentationESQL.coalesce": "COALESCE",
"languageDocumentation.documentationESQL.coalesce.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### COALESCE\n 返回它的第一个不为 null 的参数。如果所有参数均为 null则返回 `null`。\n\n ```\n ROW a=null, b=\"b\"\n | EVAL COALESCE(a, b)\n ```\n ",
"languageDocumentation.documentationESQL.concat": "CONCAT",
"languageDocumentation.documentationESQL.concat.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### CONCAT\n 串联两个或多个字符串。\n\n ```\n FROM employees\n | KEEP first_name, last_name\n | EVAL fullname = CONCAT(first_name, \" \", last_name)\n ```\n ",
"languageDocumentation.documentationESQL.cos": "COS",
"languageDocumentation.documentationESQL.cos.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### COS\n 返回角度的余弦。\n\n ```\n ROW a=1.8 \n | EVAL cos=COS(a)\n ```\n ",
"languageDocumentation.documentationESQL.cosh": "COSH",
"languageDocumentation.documentationESQL.cosh.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### COSH\n 返回角度的双曲余弦。\n\n ```\n ROW a=1.8 \n | EVAL cosh=COSH(a)\n ```\n ",
"languageDocumentation.documentationESQL.date_diff": "DATE_DIFF",
"languageDocumentation.documentationESQL.date_diff.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### DATE_DIFF\n 从 `endTimestamp` 中减去 `startTimestamp`,并以倍数 `unit` 返回差异。\n 如果 `startTimestamp` 晚于 `endTimestamp`,则返回负值。\n\n ```\n ROW date1 = TO_DATETIME(\"2023-12-02T11:00:00.000Z\"), date2 = TO_DATETIME(\"2023-12-02T11:00:00.001Z\")\n | EVAL dd_ms = DATE_DIFF(\"microseconds\", date1, date2)\n ```\n ",
"languageDocumentation.documentationESQL.date_extract": "DATE_EXTRACT",
"languageDocumentation.documentationESQL.date_extract.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### DATE_EXTRACT\n 提取日期的某些部分,如年、月、日、小时。\n\n ```\n ROW date = DATE_PARSE(\"yyyy-MM-dd\", \"2022-05-06\")\n | EVAL year = DATE_EXTRACT(\"year\", date)\n ```\n ",
"languageDocumentation.documentationESQL.date_format": "DATE_FORMAT",
"languageDocumentation.documentationESQL.date_format.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### DATE_FORMAT\n 以提供的格式返回日期的字符串表示形式。\n\n ```\n FROM employees\n | KEEP first_name, last_name, hire_date\n | EVAL hired = DATE_FORMAT(\"YYYY-MM-dd\", hire_date)\n ```\n ",
"languageDocumentation.documentationESQL.date_parse": "DATE_PARSE",
"languageDocumentation.documentationESQL.date_parse.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### DATE_PARSE\n 通过使用在第一个参数中指定的格式来解析第二个参数,从而返回日期。\n\n ```\n ROW date_string = \"2022-05-06\"\n | EVAL date = DATE_PARSE(\"yyyy-MM-dd\", date_string)\n ```\n ",
"languageDocumentation.documentationESQL.date_trunc": "DATE_TRUNC",
"languageDocumentation.documentationESQL.date_trunc.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### DATE_TRUNC\n 将日期向下舍入到最近的时间间隔。\n\n ```\n FROM employees\n | KEEP first_name, last_name, hire_date\n | EVAL year_hired = DATE_TRUNC(1 year, hire_date)\n ```\n ",
"languageDocumentation.documentationESQL.dissect": "DISSECT",
"languageDocumentation.documentationESQL.dissect.markdown": "### DISSECT\n使用 `DISSECT`,您可以从字符串中提取结构化数据。`DISSECT` 将根据基于分隔符的模式来匹配字符串,并提取指定键作为列。\n\n请参阅[分解处理器文档](https://www.elastic.co/guide/en/elasticsearch/reference/current/dissect-processor.html)了解分解模式的语法。\n\n```\nROW a = \"1953-01-23T12:15:00Z - some text - 127.0.0.1\"\n| DISSECT a \"%'{Y}-%{M}-%{D}T%{h}:%{m}:%{s}Z - %{msg} - %{ip}'\"\n``` ",
"languageDocumentation.documentationESQL.drop": "DROP",
"languageDocumentation.documentationESQL.drop.markdown": "### DROP\n使用 `DROP` 可从表中移除列:\n \n```\nFROM employees\n| DROP height\n```\n\n您不必按名称指定每个列而可以使用通配符丢弃名称匹配某种模式的所有列\n\n```\nFROM employees\n| DROP height*\n```\n ",
"languageDocumentation.documentationESQL.e": "E",
"languageDocumentation.documentationESQL.e.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### E\n 返回 Euler 函数的编号。\n\n ```\n ROW E()\n ```\n ",
"languageDocumentation.documentationESQL.ends_with": "ENDS_WITH",
"languageDocumentation.documentationESQL.ends_with.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ENDS_WITH\n 返回布尔值,指示关键字字符串是否以另一个字符串结尾。\n\n ```\n FROM employees\n | KEEP last_name\n | EVAL ln_E = ENDS_WITH(last_name, \"d\")\n ```\n ",
"languageDocumentation.documentationESQL.enrich": "ENRICH",
"languageDocumentation.documentationESQL.enrich.markdown": "### ENRICH\n您可以使用 `ENRICH` 将来自现有索引的数据添加到传入记录中。它类似于[采集扩充](https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest-enriching-data.html),但作用于查询时间。\n\n```\nROW language_code = \"1\"\n| ENRICH languages_policy\n```\n\n执行 `ENRICH` 需要[扩充策略](https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest-enriching-data.html#enrich-policy)。扩充策略定义一个匹配字段(键字段)和一组扩充字段。\n\n`ENRICH` 将根据匹配字段值在[扩充索引](https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest-enriching-data.html#enrich-index)中查找记录。输入数据集中的匹配键可以使用 `ON <field-name>` 来定义;如果未指定,将对字段名称与在扩充策略中定义的匹配字段相同的字段执行匹配。\n\n```\nROW a = \"1\"\n| ENRICH languages_policy ON a\n```\n\n您可以使用 `WITH <field1>, <field2>...` 语法指定必须将哪些属性(在那些在策略中定义为扩充字段的字段之间)添加到结果中。\n\n```\nROW a = \"1\"\n| ENRICH languages_policy ON a WITH language_name\n```\n\n还可以使用 `WITH new_name=<field1>` 重命名属性\n\n```\nROW a = \"1\"\n| ENRICH languages_policy ON a WITH name = language_name\n```\n\n默认情况下如果未定义任何 `WITH``ENRICH` 会将在扩充策略中定义的所有扩充字段添加到结果中。\n\n如果出现名称冲突新创建的字段将覆盖现有字段。\n ",
"languageDocumentation.documentationESQL.eval": "EVAL",
"languageDocumentation.documentationESQL.eval.markdown": "### EVAL\n`EVAL` 允许您添加新列:\n\n```\nFROM employees\n| KEEP first_name, last_name, height\n| EVAL height_feet = height * 3.281, height_cm = height * 100\n```\n\n如果指定列已存在将丢弃现有列并将新列追加到表后面\n\n```\nFROM employees\n| KEEP first_name, last_name, height\n| EVAL height = height * 3.281\n```\n\n#### 函数\n`EVAL` 支持各种用于计算值的函数。请参阅“函数”了解更多信息。\n ",
"languageDocumentation.documentationESQL.floor": "FLOOR",
"languageDocumentation.documentationESQL.floor.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### FLOOR\n 将数字向下舍入到最近的整数。\n\n ```\n ROW a=1.8\n | EVAL a=FLOOR(a)\n ```\n 注意:对于 `long`(包括无符号值)和 `integer`,这相当于“无操作”。\n 对于 `double`,这会提取最接近整数的 `double` 值,\n 类似于 Math.floor。\n ",
"languageDocumentation.documentationESQL.from": "FROM",
"languageDocumentation.documentationESQL.from_base64": "FROM_BASE64",
"languageDocumentation.documentationESQL.from_base64.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### FROM_BASE64\n 解码 base64 字符串。\n\n ```\n row a = \"ZWxhc3RpYw==\" \n | eval d = from_base64(a)\n ```\n ",
"languageDocumentation.documentationESQL.from.markdown": "### FROM\n`FROM` 源命令返回一个表,其中最多包含 10,000 个来自数据流、索引或别名的文档。生成的表中的每一行代表一个文档。每一列对应一个字段,并可以通过该字段的名称进行访问。\n\n```\nFROM employees\n```\n\n您可以使用[日期数学表达式](https://www.elastic.co/guide/en/elasticsearch/reference/current/api-conventions.html#api-date-math-index-names)来引用索引、别名和数据流。这可能对时间序列数据非常有用。\n\n使用逗号分隔列表或通配符可查询多个数据流、索引或别名\n\n```\nFROM employees-00001,employees-*\n```\n\n#### 元数据\n\nES|QL 可访问以下元数据字段:\n\n* `_index`:文档所属的索引。字段类型为 `keyword`.\n* `_id`:源文档的 ID。字段类型为 `keyword`.\n* `_version`:源文档的版本。字段类型为 `long`。\n\n使用 `METADATA` 指令可启用元数据字段:\n\n```\nFROM index [METADATA _index, _id]\n```\n\n元数据字段仅在数据源为索引时可用。因此`FROM` 是唯一支持 `METADATA` 指令的源命令。\n\n启用后这些字段将可用于后续处理命令就像其他索引字段一样\n\n```\nFROM ul_logs, apps [METADATA _index, _version]\n| WHERE id IN (13, 14) AND _version == 1\n| EVAL key = CONCAT(_index, \"_\", TO_STR(id))\n| SORT id, _index\n| KEEP id, _index, _version, key\n```\n\n此外与索引字段类似一旦执行了聚合后续命令将无法再访问元数据字段除非它用作分组字段\n\n```\nFROM employees [METADATA _index, _id]\n| STATS max = MAX(emp_no) BY _index\n```\n ",
"languageDocumentation.documentationESQL.greatest": "GREATEST",
"languageDocumentation.documentationESQL.greatest.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### GREATEST\n 返回多个列中的最大值。除了可一次对多个列运行以外,\n 此函数与 `MV_MAX` 类似。\n\n ```\n ROW a = 10, b = 20\n | EVAL g = GREATEST(a, b)\n ```\n 注意:对 `keyword` 或 `text` 字段运行时,此函数将按字母顺序返回最后一个字符串。对 `boolean` 列运行时,如果任何值为 `true`,此函数将返回 `true`。\n ",
"languageDocumentation.documentationESQL.grok": "GROK",
"languageDocumentation.documentationESQL.grok.markdown": "### GROK\n使用 `GROK`,您可以从字符串中提取结构化数据。`GROK` 将基于正则表达式根据模式来匹配字符串,并提取指定模式作为列。\n\n请参阅 [grok 处理器文档](https://www.elastic.co/guide/en/elasticsearch/reference/current/grok-processor.html)了解 grok 模式的语法。\n\n```\nROW a = \"12 15.5 15.6 true\"\n| GROK a \"%'{NUMBER:b:int}' %'{NUMBER:c:float}' %'{NUMBER:d:double}' %'{WORD:e:boolean}'\"\n```\n ",
"languageDocumentation.documentationESQL.inOperator": "IN",
"languageDocumentation.documentationESQL.inOperator.markdown": "### IN\n`IN` 运算符允许测试字段或表达式是否等于文本、字段或表达式列表中的元素:\n\n```\nROW a = 1, b = 4, c = 3\n| WHERE c-a IN (3, b / 2, a)\n```\n ",
"languageDocumentation.documentationESQL.ip_prefix": "IP_PREFIX",
"languageDocumentation.documentationESQL.ip_prefix.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### IP_PREFIX\n 截短 IP 至给定的前缀长度。\n\n ```\n row ip4 = to_ip(\"1.2.3.4\"), ip6 = to_ip(\"fe80::cae2:65ff:fece:feb9\")\n | eval ip4_prefix = ip_prefix(ip4, 24, 0), ip6_prefix = ip_prefix(ip6, 0, 112);\n ```\n ",
"languageDocumentation.documentationESQL.keep": "KEEP",
"languageDocumentation.documentationESQL.keep.markdown": "### KEEP\n使用 `KEEP` 命令,您可以指定将返回哪些列以及返回这些列的顺序。\n\n要限制返回的列数请使用列名的逗号分隔列表。将按指定顺序返回这些列\n \n```\nFROM employees\n| KEEP first_name, last_name, height\n```\n\n您不必按名称指定每个列而可以使用通配符返回名称匹配某种模式的所有列\n\n```\nFROM employees\n| KEEP h*\n```\n\n星号通配符 (`*`) 自身将转换为不与其他参数匹配的所有列。此查询将首先返回所有名称以 h 开头的所有列,随后返回所有其他列:\n\n```\nFROM employees\n| KEEP h*, *\n```\n ",
"languageDocumentation.documentationESQL.least": "LEAST",
"languageDocumentation.documentationESQL.least.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### LEAST\n 返回多个列中的最小值。除了可一次对多个列运行以外,此函数与 `MV_MIN` 类似。\n\n ```\n ROW a = 10, b = 20\n | EVAL l = LEAST(a, b)\n ```\n ",
"languageDocumentation.documentationESQL.left": "LEFT",
"languageDocumentation.documentationESQL.left.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### LEFT\n 返回从“字符串”中提取“长度”字符的子字符串,从左侧开始。\n\n ```\n FROM employees\n | KEEP last_name\n | EVAL left = LEFT(last_name, 3)\n | SORT last_name ASC\n | LIMIT 5\n ```\n ",
"languageDocumentation.documentationESQL.length": "LENGTH",
"languageDocumentation.documentationESQL.length.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### LENGTH\n 返回字符串的字符长度。\n\n ```\n FROM employees\n | KEEP first_name, last_name\n | EVAL fn_length = LENGTH(first_name)\n ```\n ",
"languageDocumentation.documentationESQL.limit": "LIMIT",
"languageDocumentation.documentationESQL.limit.markdown": "### LIMIT\n`LIMIT` 处理命令允许您限制行数:\n \n```\nFROM employees\n| LIMIT 5\n```\n ",
"languageDocumentation.documentationESQL.locate": "LOCATE",
"languageDocumentation.documentationESQL.locate.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### LOCATE\n 返回一个整数,指示关键字子字符串在另一字符串中的位置\n\n ```\n row a = \"hello\"\n | eval a_ll = locate(a, \"ll\")\n ```\n ",
"languageDocumentation.documentationESQL.log": "LOG",
"languageDocumentation.documentationESQL.log.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### LOG\n 以某底数返回值的对数。输入可以为任何数字值,返回值始终为双精度值。\n\n 求零、负数的对数,以及底数为一时将返回 `null`,并显示警告。\n\n ```\n ROW base = 2.0, value = 8.0\n | EVAL s = LOG(base, value)\n ```\n ",
"languageDocumentation.documentationESQL.log10": "LOG10",
"languageDocumentation.documentationESQL.log10.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### LOG10\n 以底数 10 返回值的对数。输入可以为任何数字值,返回值始终为双精度值。\n\n 求 0 和负数的对数时将返回 `null`,并显示警告。\n\n ```\n ROW d = 1000.0 \n | EVAL s = LOG10(d)\n ```\n ",
"languageDocumentation.documentationESQL.ltrim": "LTRIM",
"languageDocumentation.documentationESQL.ltrim.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### LTRIM\n 从字符串中移除前导空格。\n\n ```\n ROW message = \" some text \", color = \" red \"\n | EVAL message = LTRIM(message)\n | EVAL color = LTRIM(color)\n | EVAL message = CONCAT(\"'\", message, \"'\")\n | EVAL color = CONCAT(\"'\", color, \"'\")\n ```\n ",
"languageDocumentation.documentationESQL.markdown": "## ES|QL\n\nES|QLElasticsearch 查询语言)查询包含一系列命令,它们用管道字符分隔:`|`。每个查询以**源命令**开头,它会生成一个表,其中通常包含来自 Elasticsearch 的数据。\n\n源命令可后接一个或多个**处理命令**。处理命令可通过添加、移除以及更改行和列来更改前一个命令的输出表。\n\n```\nsource-command\n| processing-command1\n| processing-command2\n```\n\n查询的结果为由最后的处理命令生成的表。 \n ",
"languageDocumentation.documentationESQL.mv_append": "MV_APPEND",
"languageDocumentation.documentationESQL.mv_append.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_APPEND\n 串联两个多值字段的值。\n\n ",
"languageDocumentation.documentationESQL.mv_avg": "MV_AVG",
"languageDocumentation.documentationESQL.mv_avg.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_AVG\n 将多值字段转换为包含所有值的平均值的单值字段。\n\n ```\n ROW a=[3, 5, 1, 6]\n | EVAL avg_a = MV_AVG(a)\n ```\n ",
"languageDocumentation.documentationESQL.mv_concat": "MV_CONCAT",
"languageDocumentation.documentationESQL.mv_concat.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_CONCAT\n 将多值字符串表达式转换为单值列,其中包含由分隔符分隔的所有值的串联形式。\n\n ```\n ROW a=[\"foo\", \"zoo\", \"bar\"]\n | EVAL j = MV_CONCAT(a, \", \")\n ```\n ",
"languageDocumentation.documentationESQL.mv_count": "MV_COUNT",
"languageDocumentation.documentationESQL.mv_count.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_COUNT\n 将多值表达式转换为包含值计数的单值列。\n\n ```\n ROW a=[\"foo\", \"zoo\", \"bar\"]\n | EVAL count_a = MV_COUNT(a)\n ```\n ",
"languageDocumentation.documentationESQL.mv_dedupe": "MV_DEDUPE",
"languageDocumentation.documentationESQL.mv_dedupe.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_DEDUPE\n 移除多值字段中的重复值。\n\n ```\n ROW a=[\"foo\", \"foo\", \"bar\", \"foo\"]\n | EVAL dedupe_a = MV_DEDUPE(a)\n ```\n 注意:`MV_DEDUPE` 可能但不会始终对列中的值进行排序。\n ",
"languageDocumentation.documentationESQL.mv_first": "MV_FIRST",
"languageDocumentation.documentationESQL.mv_first.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_FIRST\n 将多值表达式转换为包含第一个值的\n 单值列。这在从按已知顺序发出多值列的\n 函数(如 `SPLIT`)中读取数据时尤其有用。\n\n 无法保证从底层存储\n 读取多值字段的顺序。它 *通常* 为升序,但不应\n 依赖于此。如果需要最小值,请使用 `MV_MIN` 而不是\n `MV_FIRST`。`MV_MIN` 针对排序值进行了优化,因此\n 对 `MV_FIRST` 没有性能优势。\n\n ```\n ROW a=\"foo;bar;baz\"\n | EVAL first_a = MV_FIRST(SPLIT(a, \";\"))\n ```\n ",
"languageDocumentation.documentationESQL.mv_last": "MV_LAST",
"languageDocumentation.documentationESQL.mv_last.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_LAST\n 将多值表达式转换为包含最后一个值的单值\n 列。这在从按已知顺序发出多值列的函数\n (如 `SPLIT`)中读取数据时尤其有用。\n\n 无法保证从底层存储\n 读取多值字段的顺序。它 *通常* 为升序,但不应\n 依赖于此。如果需要最大值,请使用 `MV_MAX` 而不是\n `MV_LAST`。`MV_MAX` 针对排序值进行了优化,因此\n 对 `MV_LAST` 没有性能优势。\n\n ```\n ROW a=\"foo;bar;baz\"\n | EVAL last_a = MV_LAST(SPLIT(a, \";\"))\n ```\n ",
"languageDocumentation.documentationESQL.mv_max": "MV_MAX",
"languageDocumentation.documentationESQL.mv_max.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_MAX\n 将多值表达式转换为包含最大值的单值列。\n\n ```\n ROW a=[3, 5, 1]\n | EVAL max_a = MV_MAX(a)\n ```\n ",
"languageDocumentation.documentationESQL.mv_median": "MV_MEDIAN",
"languageDocumentation.documentationESQL.mv_median.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_MEDIAN\n 将多值字段转换为包含中位数值的单值字段。\n\n ```\n ROW a=[3, 5, 1]\n | EVAL median_a = MV_MEDIAN(a)\n ```\n ",
"languageDocumentation.documentationESQL.mv_min": "MV_MIN",
"languageDocumentation.documentationESQL.mv_min.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_MIN\n 将多值表达式转换为包含最小值的单值列。\n\n ```\n ROW a=[2, 1]\n | EVAL min_a = MV_MIN(a)\n ```\n ",
"languageDocumentation.documentationESQL.mv_slice": "MV_SLICE",
"languageDocumentation.documentationESQL.mv_slice.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_SLICE\n 使用起始和结束索引值返回多值字段的子集。\n\n ```\n row a = [1, 2, 2, 3]\n | eval a1 = mv_slice(a, 1), a2 = mv_slice(a, 2, 3)\n ```\n ",
"languageDocumentation.documentationESQL.mv_sort": "MV_SORT",
"languageDocumentation.documentationESQL.mv_sort.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_SORT\n 按字典顺序对多值字段排序。\n\n ```\n ROW a = [4, 2, -3, 2]\n | EVAL sa = mv_sort(a), sd = mv_sort(a, \"DESC\")\n ```\n ",
"languageDocumentation.documentationESQL.mv_sum": "MV_SUM",
"languageDocumentation.documentationESQL.mv_sum.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_SUM\n 将多值字段转换为包含所有值的总和的单值字段。\n\n ```\n ROW a=[3, 5, 6]\n | EVAL sum_a = MV_SUM(a)\n ```\n ",
"languageDocumentation.documentationESQL.mv_zip": "MV_ZIP",
"languageDocumentation.documentationESQL.mv_zip.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### MV_ZIP\n 组合两个使用分隔符联接在一起的多值字段中的值。\n\n ```\n ROW a = [\"x\", \"y\", \"z\"], b = [\"1\", \"2\"]\n | EVAL c = mv_zip(a, b, \"-\")\n | KEEP a, b, c\n ```\n ",
"languageDocumentation.documentationESQL.mvExpand": "MV_EXPAND",
"languageDocumentation.documentationESQL.mvExpand.markdown": "### MV_EXPAND\n`MV_EXPAND` 处理命令将多值字段扩展成每个值一行,从而复制其他字段: \n```\nROW a=[1,2,3], b=\"b\", j=[\"a\",\"b\"]\n| MV_EXPAND a\n```\n ",
"languageDocumentation.documentationESQL.now": "NOW",
"languageDocumentation.documentationESQL.now.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### NOW\n 返回当前日期和时间。\n\n ```\n ROW current_date = NOW()\n ```\n ",
"languageDocumentation.documentationESQL.pi": "PI",
"languageDocumentation.documentationESQL.pi.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### PI\n 返回 Pi即圆的周长与其直径的比率。\n\n ```\n ROW PI()\n ```\n ",
"languageDocumentation.documentationESQL.pow": "POW",
"languageDocumentation.documentationESQL.pow.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### POW\n 返回提升为 `exponent` 幂的 `base` 的值。\n\n ```\n ROW base = 2.0, exponent = 2\n | EVAL result = POW(base, exponent)\n ```\n 注意:此处仍可能使双精度结果溢出;在该情况下,将返回 null。\n ",
"languageDocumentation.documentationESQL.predicates": "Null 值",
"languageDocumentation.documentationESQL.predicates.markdown": "### NULL 值\n对于 NULL 比较,请使用 `IS NULL` 和 `IS NOT NULL` 谓词:\n\n```\nFROM employees\n| WHERE birth_date IS NULL\n| KEEP first_name, last_name\n| SORT first_name\n| LIMIT 3\n```\n\n```\nFROM employees\n| WHERE is_rehired IS NOT NULL\n| STATS count(emp_no)\n```\n ",
"languageDocumentation.documentationESQL.rename": "RENAME",
"languageDocumentation.documentationESQL.rename.markdown": "### RENAME\n请使用 `RENAME` 通过以下语法对列重命名:\n\n```\nRENAME <old-name> AS <new-name>\n```\n\n例如\n\n```\nFROM employees\n| KEEP first_name, last_name, still_hired\n| RENAME still_hired AS employed\n```\n\n如果使用新名称的列已存在将用新列替换该列。\n\n可以使用单个 `RENAME` 命令对多个列重命名:\n\n```\nFROM employees\n| KEEP first_name, last_name\n| RENAME first_name AS fn, last_name AS ln\n```\n ",
"languageDocumentation.documentationESQL.repeat": "REPEAT",
"languageDocumentation.documentationESQL.repeat.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### REPEAT\n 返回通过串联 `string` 自身与指定次数 `number` 构造而成的字符串。\n\n ```\n ROW a = \"Hello!\"\n | EVAL triple_a = REPEAT(a, 3);\n ```\n ",
"languageDocumentation.documentationESQL.replace": "REPLACE",
"languageDocumentation.documentationESQL.replace.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### REPLACE\n 此函数将字符串 `str` 中正则表达式 `regex` 的任何匹配项\n 替换为替代字符串 `newStr`。\n\n ```\n ROW str = \"Hello World\"\n | EVAL str = REPLACE(str, \"World\", \"Universe\")\n | KEEP str\n ```\n ",
"languageDocumentation.documentationESQL.right": "RIGHT",
"languageDocumentation.documentationESQL.right.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### RIGHT\n 返回从“字符串”中提取“长度”字符的子字符串,从右侧开始。\n\n ```\n FROM employees\n | KEEP last_name\n | EVAL right = RIGHT(last_name, 3)\n | SORT last_name ASC\n | LIMIT 5\n ```\n ",
"languageDocumentation.documentationESQL.round": "ROUND",
"languageDocumentation.documentationESQL.round.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ROUND\n 将数字舍入到指定小数位数。\n 默认值为 0即返回最近的整数。如果\n 精确度为负数,则将数字舍入到\n 小数点左侧的位数。\n\n ```\n FROM employees\n | KEEP first_name, last_name, height\n | EVAL height_ft = ROUND(height * 3.281, 1)\n ```\n ",
"languageDocumentation.documentationESQL.row": "ROW",
"languageDocumentation.documentationESQL.row.markdown": "### ROW\n`ROW` 源命令会生成一个行,其中包含一个或多个含有您指定的值的列。这可以用于测试。\n \n```\nROW a = 1, b = \"two\", c = null\n```\n\n请使用方括号创建多值列\n\n```\nROW a = [2, 1]\n```\n\nROW 支持使用函数:\n\n```\nROW a = ROUND(1.23, 0)\n```\n ",
"languageDocumentation.documentationESQL.rtrim": "RTRIM",
"languageDocumentation.documentationESQL.rtrim.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### RTRIM\n 从字符串中移除尾随空格。\n\n ```\n ROW message = \" some text \", color = \" red \"\n | EVAL message = RTRIM(message)\n | EVAL color = RTRIM(color)\n | EVAL message = CONCAT(\"'\", message, \"'\")\n | EVAL color = CONCAT(\"'\", color, \"'\")\n ```\n ",
"languageDocumentation.documentationESQL.show": "SHOW",
"languageDocumentation.documentationESQL.show.markdown": "### SHOW\n`SHOW <item>` 源命令返回有关部署及其功能的信息:\n\n* 使用 `SHOW INFO` 可返回部署的版本、构建日期和哈希。\n* 使用 `SHOW FUNCTIONS` 可返回所有受支持函数的列表和每个函数的概要。\n ",
"languageDocumentation.documentationESQL.signum": "SIGNUM",
"languageDocumentation.documentationESQL.signum.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### SIGNUM\n 返回给定数字的符号。\n 它对负数返回 `-1`,对 `0` 返回 `0`,对正数返回 `1`。\n\n ```\n ROW d = 100.0\n | EVAL s = SIGNUM(d)\n ```\n ",
"languageDocumentation.documentationESQL.sin": "SIN",
"languageDocumentation.documentationESQL.sin.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### SIN\n 返回角度的正弦三角函数。\n\n ```\n ROW a=1.8 \n | EVAL sin=SIN(a)\n ```\n ",
"languageDocumentation.documentationESQL.sinh": "SINH",
"languageDocumentation.documentationESQL.sinh.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### SINH\n 返回角度的双曲正弦。\n\n ```\n ROW a=1.8 \n | EVAL sinh=SINH(a)\n ```\n ",
"languageDocumentation.documentationESQL.sort": "SORT",
"languageDocumentation.documentationESQL.sort.markdown": "### SORT\n使用 `SORT` 命令可对一个或多个字段上的行排序:\n\n```\nFROM employees\n| KEEP first_name, last_name, height\n| SORT height\n```\n\n默认排序顺序为升序。请使用 `ASC` 或 `DESC` 设置显式排序顺序:\n\n```\nFROM employees\n| KEEP first_name, last_name, height\n| SORT height DESC\n```\n\n如果两个行具有相同的排序键则保留原始顺序。您可以提供其他排序表达式充当连接断路器\n\n```\nFROM employees\n| KEEP first_name, last_name, height\n| SORT height DESC, first_name ASC\n```\n\n#### `null` 值\n默认情况下会将 `null` 值视为大于任何其他值。使用升序排序顺序时,会最后对 `null` 值排序,而使用降序排序顺序时,会首先对 `null` 值排序。您可以通过提供 `NULLS FIRST` 或 `NULLS LAST` 来更改该排序:\n\n```\nFROM employees\n| KEEP first_name, last_name, height\n| SORT first_name ASC NULLS FIRST\n```\n ",
"languageDocumentation.documentationESQL.split": "SPLIT",
"languageDocumentation.documentationESQL.split.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### SPLIT\n 将单值字符串拆分成多个字符串。\n\n ```\n ROW words=\"foo;bar;baz;qux;quux;corge\"\n | EVAL word = SPLIT(words, \";\")\n ```\n ",
"languageDocumentation.documentationESQL.sqrt": "SQRT",
"languageDocumentation.documentationESQL.sqrt.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### SQRT\n 返回数字的平方根。输入可以为任何数字值,返回值始终为双精度值。\n 负数和无穷大的平方根为 null。\n\n ```\n ROW d = 100.0\n | EVAL s = SQRT(d)\n ```\n ",
"languageDocumentation.documentationESQL.st_contains": "ST_CONTAINS",
"languageDocumentation.documentationESQL.st_contains.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ST_CONTAINS\n 返回第一个几何形状是否包含第二个几何形状。\n 这是 `ST_WITHIN` 函数的反向函数。\n\n ```\n FROM airport_city_boundaries\n | WHERE ST_CONTAINS(city_boundary, TO_GEOSHAPE(\"POLYGON((109.35 18.3, 109.45 18.3, 109.45 18.4, 109.35 18.4, 109.35 18.3))\"))\n | KEEP abbrev, airport, region, city, city_location\n ```\n ",
"languageDocumentation.documentationESQL.st_disjoint": "ST_DISJOINT",
"languageDocumentation.documentationESQL.st_disjoint.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ST_DISJOINT\n 返回两个几何图形或几何图形列是否不相交。\n 这是 `ST_INTERSECTS` 函数的反向函数。\n 从数学上讲ST_Disjoint(A, B) ⇔ A ⋂ B = ∅\n\n ```\n FROM airport_city_boundaries\n | WHERE ST_DISJOINT(city_boundary, TO_GEOSHAPE(\"POLYGON((-10 -60, 120 -60, 120 60, -10 60, -10 -60))\"))\n | KEEP abbrev, airport, region, city, city_location\n ```\n ",
"languageDocumentation.documentationESQL.st_distance": "ST_DISTANCE",
"languageDocumentation.documentationESQL.st_distance.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ST_DISTANCE\n 计算两点之间的距离。\n 对于笛卡尔几何形状,这是以相同单位作为原始坐标时的毕达哥拉斯距离。\n 对于地理几何形状而言,这是沿着地球大圆的圆周距离(以米为单位)。\n\n ```\n FROM airports\n | WHERE abbrev == \"CPH\"\n | EVAL distance = ST_DISTANCE(location, city_location)\n | KEEP abbrev, name, location, city_location, distance\n ```\n ",
"languageDocumentation.documentationESQL.st_intersects": "ST_INTERSECTS",
"languageDocumentation.documentationESQL.st_intersects.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ST_INTERSECTS\n 如果两个几何形状相交,则返回 true。\n 如果它们有任何共同点,包括其内点\n (沿线的点或多边形内的点),则表示它们相交。\n 这是 `ST_DISJOINT` 函数的反向函数。\n 从数学上讲ST_Intersects(A, B) ⇔ A ⋂ B ≠ ∅\n\n ```\n FROM airports\n | WHERE ST_INTERSECTS(location, TO_GEOSHAPE(\"POLYGON((42 14, 43 14, 43 15, 42 15, 42 14))\"))\n ```\n ",
"languageDocumentation.documentationESQL.st_within": "ST_WITHIN",
"languageDocumentation.documentationESQL.st_within.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ST_WITHIN\n 返回第一个几何形状是否在第二个几何形状内。\n 这是 `ST_CONTAINS` 函数的反向函数。\n\n ```\n FROM airport_city_boundaries\n | WHERE ST_WITHIN(city_boundary, TO_GEOSHAPE(\"POLYGON((109.1 18.15, 109.6 18.15, 109.6 18.65, 109.1 18.65, 109.1 18.15))\"))\n | KEEP abbrev, airport, region, city, city_location\n ```\n ",
"languageDocumentation.documentationESQL.st_x": "ST_X",
"languageDocumentation.documentationESQL.st_x.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ST_X\n 从提供的点中提取 `x` 坐标。\n 如果点的类型为 `geo_point`,则这等同于提取 `longitude` 值。\n\n ```\n ROW point = TO_GEOPOINT(\"POINT(42.97109629958868 14.7552534006536)\")\n | EVAL x = ST_X(point), y = ST_Y(point)\n ```\n ",
"languageDocumentation.documentationESQL.st_y": "ST_Y",
"languageDocumentation.documentationESQL.st_y.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### ST_Y\n 从提供的点中提取 `y` 坐标。\n 如果点的类型为 `geo_point`,则这等同于提取 `latitude` 值。\n\n ```\n ROW point = TO_GEOPOINT(\"POINT(42.97109629958868 14.7552534006536)\")\n | EVAL x = ST_X(point), y = ST_Y(point)\n ```\n ",
"languageDocumentation.documentationESQL.starts_with": "STARTS_WITH",
"languageDocumentation.documentationESQL.starts_with.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### STARTS_WITH\n 返回指示关键字字符串是否以另一个字符串开头的布尔值。\n\n ```\n FROM employees\n | KEEP last_name\n | EVAL ln_S = STARTS_WITH(last_name, \"B\")\n ```\n ",
"languageDocumentation.documentationESQL.statsby": "STATS ...BY",
"languageDocumentation.documentationESQL.statsby.markdown": "### STATS ...BY\n使用 `STATS ...BY` 可根据公共值对行分组,并计算已分组行中的一个或多个聚合值。\n\n**示例**\n\n```\nFROM employees\n| STATS count = COUNT(emp_no) BY languages\n| SORT languages\n```\n\n如果省略 `BY`,输出表实际将包含一行,其中为应用于整个数据集的聚合:\n\n```\nFROM employees\n| STATS avg_lang = AVG(languages)\n```\n\n可以计算多个值\n\n```\nFROM employees\n| STATS avg_lang = AVG(languages), max_lang = MAX(languages)\n```\n\n也可以按多个值分组仅长整型和关键字家族字段支持\n\n```\nFROM employees\n| EVAL hired = DATE_FORMAT(hire_date, \"YYYY\")\n| STATS avg_salary = AVG(salary) BY hired, languages.long\n| EVAL avg_salary = ROUND(avg_salary)\n| SORT hired, languages.long\n```\n\n请参阅**聚合函数**获取可与 `STATS ...BY` 搭配使用的函数列表。\n\n聚合函数和分组表达式均接受其他函数。这在对多值列使用 `STATS...BY` 时有用。例如,要计算平均工资变动,可以首先使用 `MV_AVG` 对每名员工的多个值求平均值,然后将结果用于 `AVG` 函数:\n\n```\nFROM employees\n| STATS avg_salary_change = AVG(MV_AVG(salary_change))\n```\n\n按表达式分组的示例为根据员工姓氏的第一个字母对其进行分组\n\n```\nFROM employees\n| STATS my_count = COUNT() BY LEFT(last_name, 1)\n| SORT `LEFT(last_name, 1)`\n```\n\n指定输出列名称为可选操作。如果未指定新列名称等于该表达式。以下查询将返回名为 `AVG(salary)` 的列:\n\n```\nFROM employees\n| STATS AVG(salary)\n```\n\n由于此名称包含特殊字符在后续命令中使用该名称时需要用反撇号 (`) 引用它:\n\n```\nFROM employees\n| STATS AVG(salary)\n| EVAL avg_salary_rounded = ROUND(`AVG(salary)`)\n```\n\n**注意**:不包含任何组的 `STATS` 比添加组更快。\n\n**注意**:当前,根据单一表达式进行分组比根据许多表达式进行分组更为优化。\n ",
"languageDocumentation.documentationESQL.stringOperators": "LIKE 和 RLIKE",
"languageDocumentation.documentationESQL.stringOperators.markdown": "### LIKE 和 RLIKE\n使用通配符或正则表达式比较字符串时请使用 `LIKE` 或 `RLIKE`\n\n使用 `LIKE` 时,可使用通配符来匹配字符串。支持以下通配符字符:\n\n* `*` 匹配零个或更多字符。\n* `?` 匹配一个字符。\n\n```\nFROM employees\n| WHERE first_name LIKE \"?b*\"\n| KEEP first_name, last_name\n```\n\n使用 `RLIKE` 时,可使用正则表达式来匹配字符串:\n\n```\nFROM employees\n| WHERE first_name RLIKE \".leja.*\"\n| KEEP first_name, last_name\n```\n ",
"languageDocumentation.documentationESQL.substring": "SUBSTRING",
"languageDocumentation.documentationESQL.substring.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### SUBSTRING\n 返回字符串的子字符串,用起始位置和可选长度指定\n\n ```\n FROM employees\n | KEEP last_name\n | EVAL ln_sub = SUBSTRING(last_name, 1, 3)\n ```\n ",
"languageDocumentation.documentationESQL.tan": "TAN",
"languageDocumentation.documentationESQL.tan.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TAN\n 返回角度的正切三角函数。\n\n ```\n ROW a=1.8 \n | EVAL tan=TAN(a)\n ```\n ",
"languageDocumentation.documentationESQL.tanh": "TANH",
"languageDocumentation.documentationESQL.tanh.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TANH\n 返回角度的双曲正切函数。\n\n ```\n ROW a=1.8 \n | EVAL tanh=TANH(a)\n ```\n ",
"languageDocumentation.documentationESQL.tau": "TAU",
"languageDocumentation.documentationESQL.tau.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TAU\n 返回圆的圆周长与其半径的比率。\n\n ```\n ROW TAU()\n ```\n ",
"languageDocumentation.documentationESQL.to_base64": "TO_BASE64",
"languageDocumentation.documentationESQL.to_base64.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_BASE64\n 将字符串编码为 base64 字符串。\n\n ```\n row a = \"elastic\" \n | eval e = to_base64(a)\n ```\n ",
"languageDocumentation.documentationESQL.to_boolean": "TO_BOOLEAN",
"languageDocumentation.documentationESQL.to_boolean.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_BOOLEAN\n 将输入值转换为布尔值。\n 字符串值 *true* 将不区分大小写并被转换为布尔值 *true*。\n 对于任何其他值,包括空字符串,此函数将返回 *false*。\n 数字值 *0* 将转换为 *false*,任何其他值将转换为 *true*。\n\n ```\n ROW str = [\"true\", \"TRuE\", \"false\", \"\", \"yes\", \"1\"]\n | EVAL bool = TO_BOOLEAN(str)\n ```\n ",
"languageDocumentation.documentationESQL.to_cartesianpoint": "TO_CARTESIANPOINT",
"languageDocumentation.documentationESQL.to_cartesianpoint.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_CARTESIANPOINT\n 将输入值转换为 `cartesian_point` 值。\n 字符串只有符合 WKT 点格式时,才能成功转换。\n\n ```\n ROW wkt = [\"POINT(4297.11 -1475.53)\", \"POINT(7580.93 2272.77)\"]\n | MV_EXPAND wkt\n | EVAL pt = TO_CARTESIANPOINT(wkt)\n ```\n ",
"languageDocumentation.documentationESQL.to_cartesianshape": "TO_CARTESIANSHAPE",
"languageDocumentation.documentationESQL.to_cartesianshape.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_CARTESIANSHAPE\n 将输入值转换为 `cartesian_shape` 值。\n 字符串只有符合 WKT 格式时,才能成功转换。\n\n ```\n ROW wkt = [\"POINT(4297.11 -1475.53)\", \"POLYGON ((3339584.72 1118889.97, 4452779.63 4865942.27, 2226389.81 4865942.27, 1113194.90 2273030.92, 3339584.72 1118889.97))\"]\n | MV_EXPAND wkt\n | EVAL geom = TO_CARTESIANSHAPE(wkt)\n ```\n ",
"languageDocumentation.documentationESQL.to_datetime": "TO_DATETIME",
"languageDocumentation.documentationESQL.to_datetime.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_DATETIME\n 将输入值转换为日期值。\n 仅当字符串采用 `yyyy-MM-dd'T'HH:mm:ss.SSS'Z'` 格式时,才可进行成功转换。\n 要转换其他格式的日期,请使用 `DATE_PARSE`。\n\n ```\n ROW string = [\"1953-09-02T00:00:00.000Z\", \"1964-06-02T00:00:00.000Z\", \"1964-06-02 00:00:00\"]\n | EVAL datetime = TO_DATETIME(string)\n ```\n ",
"languageDocumentation.documentationESQL.to_degrees": "TO_DEGREES",
"languageDocumentation.documentationESQL.to_degrees.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_DEGREES\n 将弧度转换为度数。\n\n ```\n ROW rad = [1.57, 3.14, 4.71]\n | EVAL deg = TO_DEGREES(rad)\n ```\n ",
"languageDocumentation.documentationESQL.to_double": "TO_DOUBLE",
"languageDocumentation.documentationESQL.to_double.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_DOUBLE\n 将输入值转换为双精度值。如果输入参数为日期类型,\n 会将其值解析为自 Unix epoch 以来的毫秒数,\n 并转换为双精度值。布尔值 *true* 将转换为双精度值 *1.0**false* 转换为 *0.0*。\n\n ```\n ROW str1 = \"5.20128E11\", str2 = \"foo\"\n | EVAL dbl = TO_DOUBLE(\"520128000000\"), dbl1 = TO_DOUBLE(str1), dbl2 = TO_DOUBLE(str2)\n ```\n ",
"languageDocumentation.documentationESQL.to_geopoint": "TO_GEOPOINT",
"languageDocumentation.documentationESQL.to_geopoint.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_GEOPOINT\n 将输入值转换为 `geo_point` 值。\n 字符串只有符合 WKT 点格式时,才能成功转换。\n\n ```\n ROW wkt = \"POINT(42.97109630194 14.7552534413725)\"\n | EVAL pt = TO_GEOPOINT(wkt)\n ```\n ",
"languageDocumentation.documentationESQL.to_geoshape": "TO_GEOSHAPE",
"languageDocumentation.documentationESQL.to_geoshape.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_GEOSHAPE\n 将输入值转换为 `geo_shape` 值。\n 字符串只有符合 WKT 格式时,才能成功转换。\n\n ```\n ROW wkt = \"POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))\"\n | EVAL geom = TO_GEOSHAPE(wkt)\n ```\n ",
"languageDocumentation.documentationESQL.to_integer": "TO_INTEGER",
"languageDocumentation.documentationESQL.to_integer.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_INTEGER\n 将输入值转换为整数值。\n 如果输入参数为日期类型,会将其值解析为自 Unix epoch 以来\n 的毫秒数,并转换为整数。\n 布尔值 *true* 将转换为整数 *1**false* 转换为 *0*。\n\n ```\n ROW long = [5013792, 2147483647, 501379200000]\n | EVAL int = TO_INTEGER(long)\n ```\n ",
"languageDocumentation.documentationESQL.to_ip": "TO_IP",
"languageDocumentation.documentationESQL.to_ip.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_IP\n 将输入字符串转换为 IP 值。\n\n ```\n ROW str1 = \"1.1.1.1\", str2 = \"foo\"\n | EVAL ip1 = TO_IP(str1), ip2 = TO_IP(str2)\n | WHERE CIDR_MATCH(ip1, \"1.0.0.0/8\")\n ```\n ",
"languageDocumentation.documentationESQL.to_long": "TO_LONG",
"languageDocumentation.documentationESQL.to_long.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_LONG\n 将输入值转换为长整型值。如果输入参数为日期类型,\n 会将其值解析为自 Unix epoch 以来的毫秒数,并转换为长整型值。\n 布尔值 *true* 将转换为长整型值 *1**false* 转换为 *0*。\n\n ```\n ROW str1 = \"2147483648\", str2 = \"2147483648.2\", str3 = \"foo\"\n | EVAL long1 = TO_LONG(str1), long2 = TO_LONG(str2), long3 = TO_LONG(str3)\n ```\n ",
"languageDocumentation.documentationESQL.to_lower": "TO_LOWER",
"languageDocumentation.documentationESQL.to_lower.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_LOWER\n 返回一个新字符串,表示已将输入字符串转为小写。\n\n ```\n ROW message = \"Some Text\"\n | EVAL message_lower = TO_LOWER(message)\n ```\n ",
"languageDocumentation.documentationESQL.to_radians": "TO_RADIANS",
"languageDocumentation.documentationESQL.to_radians.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_RADIANS\n 将度数转换为弧度。\n\n ```\n ROW deg = [90.0, 180.0, 270.0]\n | EVAL rad = TO_RADIANS(deg)\n ```\n ",
"languageDocumentation.documentationESQL.to_string": "TO_STRING",
"languageDocumentation.documentationESQL.to_string.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_STRING\n 将输入值转换为字符串。\n\n ```\n ROW a=10\n | EVAL j = TO_STRING(a)\n ```\n ",
"languageDocumentation.documentationESQL.to_unsigned_long": "TO_UNSIGNED_LONG",
"languageDocumentation.documentationESQL.to_unsigned_long.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_UNSIGNED_LONG\n 将输入值转换为无符号长整型值。如果输入参数为日期类型,\n 会将其值解析为自 Unix epoch 以来的毫秒数,并转换为无符号长整型值。\n 布尔值 *true* 将转换为无符号长整型值 *1**false* 转换为 *0*。\n\n ```\n ROW str1 = \"2147483648\", str2 = \"2147483648.2\", str3 = \"foo\"\n | EVAL long1 = TO_UNSIGNED_LONG(str1), long2 = TO_ULONG(str2), long3 = TO_UL(str3)\n ```\n ",
"languageDocumentation.documentationESQL.to_upper": "TO_UPPER",
"languageDocumentation.documentationESQL.to_upper.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_UPPER\n 返回一个新字符串,表示已将输入字符串转为大写。\n\n ```\n ROW message = \"Some Text\"\n | EVAL message_upper = TO_UPPER(message)\n ```\n ",
"languageDocumentation.documentationESQL.to_version": "TO_VERSION",
"languageDocumentation.documentationESQL.to_version.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TO_VERSION\n 将输入字符串转换为版本值。\n\n ```\n ROW v = TO_VERSION(\"1.2.3\")\n ```\n ",
"languageDocumentation.documentationESQL.trim": "TRIM",
"languageDocumentation.documentationESQL.trim.markdown": "<!--\n This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.\n -->\n\n ### TRIM\n 从字符串中移除前导和尾随空格。\n\n ```\n ROW message = \" some text \", color = \" red \"\n | EVAL message = TRIM(message)\n | EVAL color = TRIM(color)\n ```\n ",
"languageDocumentation.documentationESQL.where": "WHERE",
"languageDocumentation.documentationESQL.where.markdown": "### WHERE\n使用 `WHERE` 可生成一个表,其中包含输入表中所提供的条件评估为 `true` 的所有行:\n \n```\nFROM employees\n| KEEP first_name, last_name, still_hired\n| WHERE still_hired == true\n```\n\n#### 运算符\n\n请参阅**运算符**了解所支持的运算符的概览。\n\n#### 函数\n`WHERE` 支持各种用于计算值的函数。请参阅**函数**了解更多信息。\n ",
"textBasedEditor.query.textBasedLanguagesEditor.EnableWordWrapLabel": "在管道符上添加换行符",
"textBasedEditor.query.textBasedLanguagesEditor.errorCount": "{count} 个{count, plural, other {错误}}",
"textBasedEditor.query.textBasedLanguagesEditor.errorsTitle": "错误",
"textBasedEditor.query.textBasedLanguagesEditor.expandLabel": "展开",
"textBasedEditor.query.textBasedLanguagesEditor.feedback": "反馈",
"languageDocumentation.documentationESQL.functions": "函数",
"languageDocumentation.documentationESQL.functionsDocumentationESQLDescription": "ROW、EVAL 和 WHERE 支持的函数。",
"languageDocumentation.documentationESQL.groupingFunctions": "分组函数",
"languageDocumentation.documentationESQL.groupingFunctionsDocumentationESQLDescription": "这些分组函数可以与 `STATS...BY` 搭配使用:",
"textBasedEditor.query.textBasedLanguagesEditor.hideQueriesLabel": "隐藏最近查询",
"textBasedEditor.query.textBasedLanguagesEditor.lineCount": "{count} {count, plural, other {行}}",
"textBasedEditor.query.textBasedLanguagesEditor.lineNumber": "第 {lineNumber} 行",
"languageDocumentation.documentationESQL.operators": "运算符",
"languageDocumentation.documentationESQL.operatorsDocumentationESQLDescription": "ES|QL 支持以下运算符:",
"languageDocumentation.documentationESQL.processingCommands": "处理命令",
"languageDocumentation.documentationESQL.processingCommandsDescription": "处理命令会通过添加、移除或更改行和列来更改输入表。ES|QL 支持以下处理命令。",
"textBasedEditor.query.textBasedLanguagesEditor.querieshistory.error": "查询失败",
"textBasedEditor.query.textBasedLanguagesEditor.querieshistory.success": "已成功运行查询",
"textBasedEditor.query.textBasedLanguagesEditor.querieshistoryCopy": "复制查询到剪贴板",
@ -7346,6 +7345,7 @@
"textBasedEditor.query.textBasedLanguagesEditor.recentQueriesColumnLabel": "最近查询",
"textBasedEditor.query.textBasedLanguagesEditor.runQuery": "运行查询",
"textBasedEditor.query.textBasedLanguagesEditor.showQueriesLabel": "显示最近查询",
"languageDocumentation.documentationESQL.sourceCommands": "源命令",
"textBasedEditor.query.textBasedLanguagesEditor.submitFeedback": "提交反馈",
"textBasedEditor.query.textBasedLanguagesEditor.timeRanColumnLabel": "运行时间",
"textBasedEditor.query.textBasedLanguagesEditor.timestampNotDetected": "未找到 @timestamp",

View file

@ -5471,7 +5471,7 @@
version "0.0.0"
uid ""
"@kbn/language-documentation-popover@link:packages/kbn-language-documentation-popover":
"@kbn/language-documentation@link:packages/kbn-language-documentation":
version "0.0.0"
uid ""