[Text based languages] Creates editor reusable component (#158008)

## Summary

Closes https://github.com/elastic/kibana/issues/154330

This PR:
- Moves the editor from unified-search to a standalone package
- The editor has now a core ui settings dependency but is going to have
an expressions dependency too when merged with the ESQL branch
- Adds a new plugin (text-based-languages) which is used to pass the
dependencies on the package. The user can either use this plugin without
giving any dependencies or use the package with passing the dependecies
on the KibanaContextProvider.
- Adds storybook for the editor (I used the mdx stories as we did on the
random sampling package)

<img width="1668" alt="image"
src="763a3112-1ae5-49bb-81f3-acd02892e402">


### Checklist

- [x]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Stratoula Kalafateli 2023-05-22 12:27:38 +01:00 committed by GitHub
parent 78e9af7644
commit 0975ebabd1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
53 changed files with 1016 additions and 510 deletions

View file

@ -50,6 +50,7 @@ const STORYBOOKS = [
'language_documentation_popover',
'unified_search',
'random_sampling',
'text_based_editor',
];
const GITHUB_CONTEXT = 'Build and Publish Storybooks';

2
.github/CODEOWNERS vendored
View file

@ -670,6 +670,8 @@ x-pack/test/licensing_plugin/plugins/test_feature_usage @elastic/kibana-security
packages/kbn-test-jest-helpers @elastic/kibana-operations
packages/kbn-test-subj-selector @elastic/kibana-operations
x-pack/examples/testing_embedded_lens @elastic/kibana-visualizations
packages/kbn-text-based-editor @elastic/kibana-visualizations
src/plugins/text_based_languages @elastic/kibana-visualizations
x-pack/examples/third_party_lens_navigation_prompt @elastic/kibana-visualizations
x-pack/examples/third_party_vis_lens_example @elastic/kibana-visualizations
x-pack/plugins/threat_intelligence @elastic/protections-experience

View file

@ -76,6 +76,7 @@
"newsfeed": "src/plugins/newsfeed",
"presentationUtil": "src/plugins/presentation_util",
"randomSampling": "x-pack/packages/kbn-random-sampling",
"textBasedEditor": "packages/kbn-text-based-editor",
"reporting": "packages/kbn-reporting/common",
"savedObjects": "src/plugins/saved_objects",
"savedObjectsFinder": "src/plugins/saved_objects_finder",
@ -87,6 +88,7 @@
"serverlessPackages": "packages/serverless",
"coloring": "packages/kbn-coloring/src",
"languageDocumentationPopover": "packages/kbn-language-documentation-popover/src",
"textBasedLanguages": "src/plugins/text_based_languages",
"statusPage": "src/legacy/core_plugins/status_page",
"telemetry": ["src/plugins/telemetry", "src/plugins/telemetry_management_section"],
"timelion": ["src/plugins/vis_types/timelion"],

View file

@ -300,6 +300,10 @@ generating deep links to other apps using locators, and creating short URLs.
|This plugin adds the Advanced Settings section for the Usage and Security Data collection (aka Telemetry).
|{kib-repo}blob/{branch}/src/plugins/text_based_languages/README.md[textBasedLanguages]
|The editor accepts the following properties:
|<<uiactions-plugin>>
|UI Actions plugins provides API to manage *triggers* and *actions*.

View file

@ -661,6 +661,8 @@
"@kbn/telemetry-test-plugin": "link:test/plugin_functional/plugins/telemetry",
"@kbn/test-feature-usage-plugin": "link:x-pack/test/licensing_plugin/plugins/test_feature_usage",
"@kbn/testing-embedded-lens-plugin": "link:x-pack/examples/testing_embedded_lens",
"@kbn/text-based-editor": "link:packages/kbn-text-based-editor",
"@kbn/text-based-languages": "link:src/plugins/text_based_languages",
"@kbn/third-party-lens-navigation-prompt-plugin": "link:x-pack/examples/third_party_lens_navigation_prompt",
"@kbn/third-party-vis-lens-example-plugin": "link:x-pack/examples/third_party_vis_lens_example",
"@kbn/threat-intelligence-plugin": "link:x-pack/plugins/threat_intelligence",

View file

@ -128,6 +128,7 @@ pageLoadAssetSize:
synthetics: 40958
telemetry: 51957
telemetryManagementSection: 38586
textBasedLanguages: 37000
threatIntelligence: 44299
timelines: 327300
transform: 41007

View file

@ -0,0 +1,17 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
const defaultConfig = require('@kbn/storybook').defaultConfig;
module.exports = {
...defaultConfig,
stories: ['../**/*.stories.+(tsx|mdx)'],
typescript: {
reactDocgen: 'react-docgen-typescript',
},
};

View file

@ -0,0 +1,14 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
export const parameters = {
viewMode: 'docs',
previewTabs: {
canvas: { hidden: true },
},
};

View file

@ -1,4 +1,13 @@
# Unified search text based languages editor
# @kbn/text-based-editor
Contains the editor for text based languages. Specifically for:
- ESQL, with autocomplete and syntax highlighting
- SQL, with syntax highlighting
---
Contains the ESQL editor with the autocomplete and the autosuggest functionality (based on atlr).
The antlr code can be found in packages/kbn-monaco/src/esql
A **monaco** based editor that is part of the unified search experience. It is rendered for all the applications that support text-based languages.
In order to enable text based languages on your unified search bar add `textBasedLanguages: ['SQL', 'ESQL', '...']` to the dataViewPicker properties.
@ -6,6 +15,7 @@ In order to enable text based languages on your unified search bar add `textBase
## Languages supported
- SQL: based on the Elasticsearch sql api
- ESQL: based on the Elastisearch esql api
## Features
@ -16,31 +26,4 @@ In order to enable text based languages on your unified search bar add `textBase
- The editor has a built in way to depict the errors but the user has to submit the query first. The error should be on the inline focuses mode or the expanded mode to view the errors details.
- The editor is responsive regardless of the mode selected.
- The editor has a built in documentation that dynamically changes based on the language of the query.
- The user can quickly submit the query by pressing CMD/CTRL + Enter.
## Preview
Run `node scripts/storybook unified_search` for a preview of the unified search bar with the editor.
## Component properties
The editor is imported to the query_bar_top_row.tsx file. Accepts the following properties:
- query: This is the **AggregateQuery** query. i.e. (`{sql: SELECT * FROM 'DATAVIEW1'}`)
- onTextLangQueryChange: callback that is called every time the query is updated
- expandCodeEditor: flag that opens the editor on the expanded mode
- errors: array of `Error`.
- onTextLangQuerySubmit: callback that is called when the user submits the query
```
<TextBasedLanguagesEditor
query={props.query}
onTextLangQueryChange={props.onTextLangQueryChange}
expandCodeEditor={(status: boolean) => setCodeEditorIsExpanded(status)}
isCodeEditorExpanded={codeEditorIsExpanded}
errors={props.textBasedLanguageModeErrors}
onTextLangQuerySubmit={() =>
onSubmit({
query: queryRef.current,
dateRange: dateRangeRef.current,
})
}
/>
```
- The user can quickly submit the query by pressing CMD/CTRL + Enter.

View file

@ -0,0 +1,14 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
export type { TextBasedLanguagesEditorProps } from './src/text_based_languages_editor';
import { TextBasedLanguagesEditor } from './src/text_based_languages_editor';
// React.lazy support
// eslint-disable-next-line import/no-default-export
export default TextBasedLanguagesEditor;

View file

@ -0,0 +1,13 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
module.exports = {
preset: '@kbn/test',
rootDir: '../..',
roots: ['<rootDir>/packages/kbn-text-based-editor'],
};

View file

@ -0,0 +1,5 @@
{
"type": "shared-browser",
"id": "@kbn/text-based-editor",
"owner": "@elastic/kibana-visualizations",
}

View file

@ -0,0 +1,6 @@
{
"name": "@kbn/text-based-editor",
"private": true,
"version": "1.0.0",
"license": "SSPL-1.0 OR Elastic License 2.0"
}

View file

@ -0,0 +1,117 @@
import { Canvas, Meta, Story, ArgsTable } from '@storybook/addon-docs/blocks';
import { I18nProvider } from '@kbn/i18n-react';
import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
import { TextBasedLanguagesEditor } from '../text_based_languages_editor';
export const Template = (args) =>
<I18nProvider>
<KibanaContextProvider
services={{
settings: { client: { get: () => {} } },
uiSettings: { get: () => {} },
}}
>
<TextBasedLanguagesEditor {...args} />
</KibanaContextProvider>
</I18nProvider>;
<Meta
title="Text based languages editor"
component={TextBasedLanguagesEditor}
/>
# Overview
The TextBasedLanguagesEditor component is a reusable component and can be used to support text based languages in your application (SQL, ESQL):
<Canvas>
<Story
name='compact mode'
args={
{
query: { sql: 'SELECT field1, field2 FROM DATAVIEW' },
isCodeEditorExpanded:false,
'data-test-subj':'test-id'
}
}
argTypes={
{ onTextLangQueryChange: { action: 'changed' }, onTextLangQuerySubmit: { action: 'submitted' }, expandCodeEditor: { action: 'expanded' }}
}
>
{Template.bind({})}
</Story>
</Canvas>
When there are errors to the query the UI displays the errors to the editor:
<Canvas>
<Story
name='with errors'
args={
{
query: { sql: 'SELECT field1, field2 FROM DATAVIEW' },
isCodeEditorExpanded:false,
'data-test-subj':'test-id',
errors: [
new Error(
'[essql] > Unexpected error from Elasticsearch: verification_exception - Found 1 problem line 1:16: Unknown column [field10]'
),
]
}
}
argTypes={
{ onTextLangQueryChange: { action: 'changed' }, onTextLangQuerySubmit: { action: 'submitted' }, expandCodeEditor: { action: 'expanded' }}
}
>
{Template.bind({})}
</Story>
</Canvas>
When there the query is long and the editor is on the compact view:
<Canvas>
<Story
name='with long query'
args={
{
query: { sql: 'SELECT field1, field2, field 3, field 4, field 5 FROM DATAVIEW WHERE field5 IS NOT NULL AND field4 IS NULL' },
isCodeEditorExpanded:false,
'data-test-subj':'test-id',
}
}
argTypes={
{ onTextLangQueryChange: { action: 'changed' }, onTextLangQuerySubmit: { action: 'submitted' }, expandCodeEditor: { action: 'expanded' }}
}
>
{Template.bind({})}
</Story>
</Canvas>
The editor also works on the expanded mode:
<Canvas>
<Story
name='on expanded mode'
args={
{
query: { sql: 'SELECT field1, field2 FROM DATAVIEW' },
isCodeEditorExpanded:true,
'data-test-subj':'test-id',
}
}
argTypes={
{ onTextLangQueryChange: { action: 'changed' }, onTextLangQuerySubmit: { action: 'submitted' }, expandCodeEditor: { action: 'expanded' }}
}
>
{Template.bind({})}
</Story>
</Canvas>
## Component props
The component exposes the following properties:
<ArgsTable story="compact mode"/>

View file

@ -48,16 +48,16 @@ export const EditorFooter = memo(function EditorFooter({
<EuiFlexGroup
gutterSize="s"
justifyContent="spaceBetween"
data-test-subj="unifiedTextLangEditor-footer"
data-test-subj="TextBasedLangEditor-footer"
css={containerCSS}
responsive={false}
>
<EuiFlexItem grow={false}>
<EuiFlexGroup gutterSize="s" responsive={false} alignItems="center">
<EuiFlexItem grow={false} style={{ marginRight: '16px' }}>
<EuiText size="xs" color="subdued" data-test-subj="unifiedTextLangEditor-footer-lines">
<EuiText size="xs" color="subdued" data-test-subj="TextBasedLangEditor-footer-lines">
<p>
{i18n.translate('unifiedSearch.query.textBasedLanguagesEditor.lineCount', {
{i18n.translate('textBasedEditor.query.textBasedLanguagesEditor.lineCount', {
defaultMessage: '{count} {count, plural, one {line} other {lines}}',
values: { count: lines },
})}
@ -89,7 +89,7 @@ export const EditorFooter = memo(function EditorFooter({
>
<p>
{i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.errorCount',
'textBasedEditor.query.textBasedLanguagesEditor.errorCount',
{
defaultMessage: '{count} {count, plural, one {error} other {errors}}',
values: { count: errors.length },
@ -105,7 +105,7 @@ export const EditorFooter = memo(function EditorFooter({
<div style={{ width: 500 }}>
<EuiPopoverTitle paddingSize="s">
{i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.errorsTitle',
'textBasedEditor.query.textBasedLanguagesEditor.errorsTitle',
{
defaultMessage: 'Errors',
}
@ -131,7 +131,7 @@ export const EditorFooter = memo(function EditorFooter({
</EuiFlexItem>
<EuiFlexItem style={{ whiteSpace: 'nowrap' }}>
{i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.lineNumber',
'textBasedEditor.query.textBasedLanguagesEditor.lineNumber',
{
defaultMessage: 'Line {lineNumber}',
values: { lineNumber: error.startLineNumber },
@ -142,7 +142,7 @@ export const EditorFooter = memo(function EditorFooter({
</EuiFlexItem>
<EuiFlexItem
grow={false}
className="unifiedTextLangEditor_errorMessage"
className="TextBasedLangEditor_errorMessage"
>
{error.message}
</EuiFlexItem>
@ -164,7 +164,7 @@ export const EditorFooter = memo(function EditorFooter({
<EuiFlexItem grow={false}>
<EuiText size="xs" color="subdued">
<p>
{i18n.translate('unifiedSearch.query.textBasedLanguagesEditor.runQuery', {
{i18n.translate('textBasedEditor.query.textBasedLanguagesEditor.runQuery', {
defaultMessage: 'Run query',
})}
</p>

View file

@ -90,7 +90,7 @@ export const getDocumentationSections = async (language: string) => {
aggregateFunctions,
} = await import('./sql_documentation_sections');
groups.push({
label: i18n.translate('unifiedSearch.query.textBasedLanguagesEditor.howItWorks', {
label: i18n.translate('textBasedEditor.query.textBasedLanguagesEditor.howItWorks', {
defaultMessage: 'How it works',
}),
items: [],

View file

@ -0,0 +1,45 @@
.TextBasedLangEditor .monaco-editor {
border-top-left-radius: 6px;
border-bottom-left-radius: 6px;
}
.TextBasedLangEditor .monaco-editor .monaco-hover {
display: none !important;
}
.TextBasedLangEditor--expanded .monaco-editor .monaco-hover {
display: block !important;
}
.TextBasedLangEditor .monaco-editor .margin {
border-top-left-radius: 6px;
border-bottom-left-radius: 6px;
}
.TextBasedLangEditor--compact .monaco-editor {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.TextBasedLangEditor--compact .monaco-editor .margin {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
background-color: $euiColorLightestShade;
color: $euiColorDisabledText;
}
.TextBasedLangEditor .monaco-editor .margin-view-overlays .line-numbers {
color: $euiColorDisabledText;
}
.TextBasedLangEditor .monaco-editor .current-line ~ .line-numbers {
color: $euiTextSubduedColor;
}
.TextBasedLangEditor--compact .monaco-editor .monaco-scrollable-element {
margin-left: 4px;
}
.TextBasedLangEditor_errorMessage {
@include euiTextBreakWord;
}

View file

@ -1,4 +1,4 @@
.unifiedTextLangEditor--resizableButtonContainer {
.TextBasedLangEditor--resizableButtonContainer {
position: absolute;
bottom: 0;
left: 0;
@ -7,7 +7,7 @@
flex-direction: column;
}
.unifiedTextLangEditor--resizableButton {
.TextBasedLangEditor--resizableButton {
position: relative;
flex-shrink: 0;
z-index: 1;

View file

@ -22,10 +22,10 @@ export function ResizableButton({
const setFocus = (e: React.MouseEvent<HTMLButtonElement>) => e.currentTarget.focus();
return (
<div className="unifiedTextLangEditor--resizableButtonContainer">
<div className="TextBasedLangEditor--resizableButtonContainer">
<button
data-test-subj="unifiedTextLangEditor-resize"
className="unifiedTextLangEditor--resizableButton"
data-test-subj="TextBasedLangEditor-resize"
className="TextBasedLangEditor--resizableButton"
onMouseDown={onMouseDownResizeHandler}
onKeyDown={onKeyDownResizeHandler}
onClick={setFocus}

View file

@ -12,7 +12,7 @@ import { Markdown } from '@kbn/kibana-react-plugin/public';
export const initialSection = (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.markdown',
{
defaultMessage: `## About Elasticsearch SQL
@ -36,24 +36,27 @@ Elasticsearch SQL:
);
export const comparisonOperators = {
label: i18n.translate('unifiedSearch.query.textBasedLanguagesEditor.comparisonOperators', {
label: i18n.translate('textBasedEditor.query.textBasedLanguagesEditor.comparisonOperators', {
defaultMessage: 'Comparison operators',
}),
description: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.comparisonOperatorsDocumentationDescription',
'textBasedEditor.query.textBasedLanguagesEditor.comparisonOperatorsDocumentationDescription',
{
defaultMessage: `Boolean operator for comparing against one or multiple expressions.`,
}
),
items: [
{
label: i18n.translate('unifiedSearch.query.textBasedLanguagesEditor.documentation.equality', {
defaultMessage: 'Equality',
}),
label: i18n.translate(
'textBasedEditor.query.textBasedLanguagesEditor.documentation.equality',
{
defaultMessage: 'Equality',
}
),
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.equality.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.equality.markdown',
{
defaultMessage: `### Equality (=)
\`\`\`
@ -70,7 +73,7 @@ WHERE emp_no = 10000 LIMIT 5
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.nullSafeEquality',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.nullSafeEquality',
{
defaultMessage: 'Null safe equality (<=>)',
}
@ -78,7 +81,7 @@ WHERE emp_no = 10000 LIMIT 5
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.nullSafeEquality.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.nullSafeEquality.markdown',
{
defaultMessage: `### Null safe equality:
\`\`\`
@ -105,7 +108,7 @@ true
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.inequality',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.inequality',
{
defaultMessage: 'Inequality',
}
@ -113,7 +116,7 @@ true
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.inequality.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.inequality.markdown',
{
defaultMessage: `### Inequality (<> or !=)
\`\`\`
@ -130,7 +133,7 @@ WHERE emp_no <> 10000 ORDER BY emp_no LIMIT 5
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.comparison',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.comparison',
{
defaultMessage: 'Comparison',
}
@ -138,7 +141,7 @@ WHERE emp_no <> 10000 ORDER BY emp_no LIMIT 5
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.comparison.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.comparison.markdown',
{
defaultMessage: `### Comparison (<, <=, >, >=)
\`\`\`
@ -154,13 +157,16 @@ WHERE emp_no < 10003 ORDER BY emp_no LIMIT 5
),
},
{
label: i18n.translate('unifiedSearch.query.textBasedLanguagesEditor.documentation.between', {
defaultMessage: 'Between',
}),
label: i18n.translate(
'textBasedEditor.query.textBasedLanguagesEditor.documentation.between',
{
defaultMessage: 'Between',
}
),
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.between.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.between.markdown',
{
defaultMessage: `### Between
\`\`\`
@ -177,7 +183,7 @@ WHERE emp_no BETWEEN 9990 AND 10003 ORDER BY emp_no
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.nullNotNull',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.nullNotNull',
{
defaultMessage: 'IS NULL and IS NOT NULL',
}
@ -185,7 +191,7 @@ WHERE emp_no BETWEEN 9990 AND 10003 ORDER BY emp_no
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.nullNotNull.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.nullNotNull.markdown',
{
defaultMessage: `### IS NULL/IS NOT NULL
\`\`\`
@ -202,7 +208,7 @@ WHERE emp_no IS NOT NULL AND gender IS NULL
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.inOperator',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.inOperator',
{
defaultMessage: 'IN',
}
@ -210,7 +216,7 @@ WHERE emp_no IS NOT NULL AND gender IS NULL
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.inOperator.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.inOperator.markdown',
{
defaultMessage: `### IN (<value1>, <value2>, ...)
\`\`\`
@ -229,11 +235,11 @@ WHERE emp_no IN (10000, 10001, 10002, 999) ORDER BY emp_no LIMIT 5
};
export const logicalOperators = {
label: i18n.translate('unifiedSearch.query.textBasedLanguagesEditor.logicalOperators', {
label: i18n.translate('textBasedEditor.query.textBasedLanguagesEditor.logicalOperators', {
defaultMessage: 'Logical operators',
}),
description: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.logicalOperatorsDocumentationDescription',
'textBasedEditor.query.textBasedLanguagesEditor.logicalOperatorsDocumentationDescription',
{
defaultMessage: `Boolean operator for evaluating one or two expressions.`,
}
@ -241,7 +247,7 @@ export const logicalOperators = {
items: [
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.AndOperator',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.AndOperator',
{
defaultMessage: 'AND',
}
@ -249,7 +255,7 @@ export const logicalOperators = {
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.andOperator.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.andOperator.markdown',
{
defaultMessage: `### AND
\`\`\`
@ -266,7 +272,7 @@ WHERE emp_no > 10000 AND emp_no < 10005 ORDER BY emp_no LIMIT 5
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.OrOperator',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.OrOperator',
{
defaultMessage: 'OR',
}
@ -274,7 +280,7 @@ WHERE emp_no > 10000 AND emp_no < 10005 ORDER BY emp_no LIMIT 5
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.orOperator.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.orOperator.markdown',
{
defaultMessage: `### OR
\`\`\`
@ -291,7 +297,7 @@ WHERE emp_no < 10003 OR emp_no = 10005 ORDER BY emp_no LIMIT 5
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.NotOperator',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.NotOperator',
{
defaultMessage: 'NOT',
}
@ -299,7 +305,7 @@ WHERE emp_no < 10003 OR emp_no = 10005 ORDER BY emp_no LIMIT 5
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.notOperator.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.notOperator.markdown',
{
defaultMessage: `### NOT
\`\`\`
@ -318,11 +324,11 @@ WHERE NOT emp_no = 10000 LIMIT 5
};
export const mathOperators = {
label: i18n.translate('unifiedSearch.query.textBasedLanguagesEditor.mathOperators', {
label: i18n.translate('textBasedEditor.query.textBasedLanguagesEditor.mathOperators', {
defaultMessage: 'Math operators',
}),
description: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.mathOperatorsDocumentationDescription',
'textBasedEditor.query.textBasedLanguagesEditor.mathOperatorsDocumentationDescription',
{
defaultMessage: `Perform mathematical operations affecting one or two values. The result is a value of numeric type..`,
}
@ -330,7 +336,7 @@ export const mathOperators = {
items: [
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.AddOperator',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.AddOperator',
{
defaultMessage: 'Add',
}
@ -338,7 +344,7 @@ export const mathOperators = {
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.addOperator.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.addOperator.markdown',
{
defaultMessage: `### Add (+)
\`\`\`
@ -354,7 +360,7 @@ SELECT 1 + 1 AS x
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.SubtractOperator',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.SubtractOperator',
{
defaultMessage: 'Subtract',
}
@ -362,7 +368,7 @@ SELECT 1 + 1 AS x
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.subtractOperator.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.subtractOperator.markdown',
{
defaultMessage: `### Subtract (infix -)
\`\`\`
@ -378,7 +384,7 @@ SELECT 1 - 1 AS x
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.negateOperator',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.negateOperator',
{
defaultMessage: 'Negate',
}
@ -386,7 +392,7 @@ SELECT 1 - 1 AS x
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.negateOperator.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.negateOperator.markdown',
{
defaultMessage: `### Negate (unary -)
\`\`\`
@ -402,7 +408,7 @@ SELECT - 1 AS x
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.multiplyOperator',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.multiplyOperator',
{
defaultMessage: 'Multiply',
}
@ -410,7 +416,7 @@ SELECT - 1 AS x
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.multiplyOperator.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.multiplyOperator.markdown',
{
defaultMessage: `### Multiply (*)
\`\`\`
@ -426,7 +432,7 @@ SELECT 2 * 3 AS x
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.divideOperator',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.divideOperator',
{
defaultMessage: 'Divide',
}
@ -434,7 +440,7 @@ SELECT 2 * 3 AS x
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.divideOperator.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.divideOperator.markdown',
{
defaultMessage: `### Divide (/)
\`\`\`
@ -450,7 +456,7 @@ SELECT 6 / 3 AS x
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.moduloOperator',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.moduloOperator',
{
defaultMessage: 'Modulo or remainder',
}
@ -458,7 +464,7 @@ SELECT 6 / 3 AS x
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.moduloOperator.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.moduloOperator.markdown',
{
defaultMessage: `### Modulo or remainder(%)
\`\`\`
@ -476,11 +482,11 @@ SELECT 5 % 2 AS x
};
export const aggregateFunctions = {
label: i18n.translate('unifiedSearch.query.textBasedLanguagesEditor.aggregateFunctions', {
label: i18n.translate('textBasedEditor.query.textBasedLanguagesEditor.aggregateFunctions', {
defaultMessage: 'Aggregate functions',
}),
description: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.aggregateFunctionsDocumentationDescription',
'textBasedEditor.query.textBasedLanguagesEditor.aggregateFunctionsDocumentationDescription',
{
defaultMessage: `Functions for computing a single result from a set of input values. Elasticsearch SQL supports aggregate functions only alongside grouping (implicit or explicit).`,
}
@ -488,7 +494,7 @@ export const aggregateFunctions = {
items: [
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.averageFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.averageFunction',
{
defaultMessage: 'Average',
}
@ -496,7 +502,7 @@ export const aggregateFunctions = {
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.averageFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.averageFunction.markdown',
{
defaultMessage: `### AVG
Returns the Average (arithmetic mean) of input values.
@ -517,7 +523,7 @@ SELECT AVG(salary) AS avg FROM emp
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.countFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.countFunction',
{
defaultMessage: 'Count',
}
@ -525,7 +531,7 @@ SELECT AVG(salary) AS avg FROM emp
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.countFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.countFunction.markdown',
{
defaultMessage: `### Count
Returns the total number (count) of input values.
@ -548,7 +554,7 @@ SELECT COUNT(*) AS count FROM emp
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.countAllFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.countAllFunction',
{
defaultMessage: 'Count (All)',
}
@ -556,7 +562,7 @@ SELECT COUNT(*) AS count FROM emp
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.countAllFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.countAllFunction.markdown',
{
defaultMessage: `### Count (All)
Returns the total number (count) of all non-null input values. COUNT(<field_name>) and COUNT(ALL <field_name>) are equivalent.
@ -578,7 +584,7 @@ SELECT COUNT(ALL last_name) AS count_all, COUNT(DISTINCT last_name) count_distin
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.countDistinctFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.countDistinctFunction',
{
defaultMessage: 'Count (Distinct)',
}
@ -586,7 +592,7 @@ SELECT COUNT(ALL last_name) AS count_all, COUNT(DISTINCT last_name) count_distin
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.countDistinctFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.countDistinctFunction.markdown',
{
defaultMessage: `### Count (Distinct)
Returns the total number of distinct non-null values in input values.
@ -610,7 +616,7 @@ SELECT COUNT(DISTINCT hire_date) unique_hires, COUNT(hire_date) AS hires FROM em
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.firstFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.firstFunction',
{
defaultMessage: 'First / First_value',
}
@ -618,7 +624,7 @@ SELECT COUNT(DISTINCT hire_date) unique_hires, COUNT(hire_date) AS hires FROM em
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.firstFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.firstFunction.markdown',
{
defaultMessage: `### FIRST / FIRST_VALUE
Returns the first non-null value (if such exists) of the field_name input column sorted by the ordering_field_name column. If ordering_field_name is not provided, only the field_name column is used for the sorting.
@ -647,7 +653,7 @@ SELECT gender, FIRST(first_name, birth_date) FROM emp GROUP BY gender ORDER BY g
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.lastFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.lastFunction',
{
defaultMessage: 'Last / Last_value',
}
@ -655,7 +661,7 @@ SELECT gender, FIRST(first_name, birth_date) FROM emp GROUP BY gender ORDER BY g
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.lastFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.lastFunction.markdown',
{
defaultMessage: `### LAST / LAST_VALUE
It is the inverse of FIRST/FIRST_VALUE. Returns the last non-null value (if such exists) of the field_name input column sorted descending by the ordering_field_name column. If ordering_field_name is not provided, only the field_name column is used for the sorting.
@ -682,7 +688,7 @@ SELECT gender, LAST(first_name) FROM emp GROUP BY gender ORDER BY gender
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.maxFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.maxFunction',
{
defaultMessage: 'Max',
}
@ -690,7 +696,7 @@ SELECT gender, LAST(first_name) FROM emp GROUP BY gender ORDER BY gender
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.maxFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.maxFunction.markdown',
{
defaultMessage: `### MAX
Returns the maximum value across input values in the field field_name.
@ -716,7 +722,7 @@ SELECT MAX(salary) AS max FROM emp
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.minFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.minFunction',
{
defaultMessage: 'Min',
}
@ -724,7 +730,7 @@ SELECT MAX(salary) AS max FROM emp
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.minFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.minFunction.markdown',
{
defaultMessage: `### MIN
Returns the minimum value across input values in the field field_name.
@ -749,7 +755,7 @@ SELECT MIN(salary) AS min FROM emp
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.sumFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.sumFunction',
{
defaultMessage: 'Sum',
}
@ -757,7 +763,7 @@ SELECT MIN(salary) AS min FROM emp
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.sumFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.sumFunction.markdown',
{
defaultMessage: `### SUM
Returns the sum of input values in the field field_name.
@ -780,7 +786,7 @@ SELECT SUM(salary) AS sum FROM emp
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.kurtosisFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.kurtosisFunction',
{
defaultMessage: 'Kurtosis',
}
@ -788,7 +794,7 @@ SELECT SUM(salary) AS sum FROM emp
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.kurtosisFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.kurtosisFunction.markdown',
{
defaultMessage: `### KURTOSIS
Quantify the shape of the distribution of input values in the field field_name.
@ -813,7 +819,7 @@ SELECT MIN(salary) AS min, MAX(salary) AS max, KURTOSIS(salary) AS k FROM emp
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.madFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.madFunction',
{
defaultMessage: 'Mad',
}
@ -821,7 +827,7 @@ SELECT MIN(salary) AS min, MAX(salary) AS max, KURTOSIS(salary) AS k FROM emp
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.madFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.madFunction.markdown',
{
defaultMessage: `### MAD
Measure the variability of the input values in the field field_name.
@ -844,7 +850,7 @@ SELECT MIN(salary) AS min, MAX(salary) AS max, AVG(salary) AS avg, MAD(salary) A
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.percentileFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.percentileFunction',
{
defaultMessage: 'Percentile',
}
@ -852,7 +858,7 @@ SELECT MIN(salary) AS min, MAX(salary) AS max, AVG(salary) AS avg, MAD(salary) A
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.percentileFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.percentileFunction.markdown',
{
defaultMessage: `### PERCENTILE
Returns the nth percentile (represented by numeric_exp parameter) of input values in the field field_name.
@ -887,7 +893,7 @@ GROUP BY languages
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.percentileRankFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.percentileRankFunction',
{
defaultMessage: 'Percentile rank',
}
@ -895,7 +901,7 @@ GROUP BY languages
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.percentileRankFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.percentileRankFunction.markdown',
{
defaultMessage: `### PERCENTILE_RANK
Returns the nth percentile rank (represented by numeric_exp parameter) of input values in the field field_name.
@ -930,7 +936,7 @@ GROUP BY languages
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.skewnessFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.skewnessFunction',
{
defaultMessage: 'Skewness',
}
@ -938,7 +944,7 @@ GROUP BY languages
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.skewnessFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.skewnessFunction.markdown',
{
defaultMessage: `### SKEWNESS
Quantify the asymmetric distribution of input values in the field field_name.
@ -961,7 +967,7 @@ SELECT MIN(salary) AS min, MAX(salary) AS max, SKEWNESS(salary) AS s FROM emp
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.stsdevpopFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.stsdevpopFunction',
{
defaultMessage: 'STDDEV_POP',
}
@ -969,7 +975,7 @@ SELECT MIN(salary) AS min, MAX(salary) AS max, SKEWNESS(salary) AS s FROM emp
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.stsdevpopFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.stsdevpopFunction.markdown',
{
defaultMessage: `### STDDEV_POP
Returns the population standard deviation of input values in the field field_name.
@ -992,7 +998,7 @@ SELECT MIN(salary) AS min, MAX(salary) AS max, STDDEV_POP(salary) AS stddev FROM
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.stsdevsampFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.stsdevsampFunction',
{
defaultMessage: 'STDDEV_SAMP',
}
@ -1000,7 +1006,7 @@ SELECT MIN(salary) AS min, MAX(salary) AS max, STDDEV_POP(salary) AS stddev FROM
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.stsdevsampFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.stsdevsampFunction.markdown',
{
defaultMessage: `### STDDEV_SAMP
Returns the sample standard deviation of input values in the field field_name.
@ -1023,7 +1029,7 @@ SELECT MIN(salary) AS min, MAX(salary) AS max, STDDEV_SAMP(salary) AS stddev FRO
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.sumofsquaresFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.sumofsquaresFunction',
{
defaultMessage: 'Sum of squares',
}
@ -1031,7 +1037,7 @@ SELECT MIN(salary) AS min, MAX(salary) AS max, STDDEV_SAMP(salary) AS stddev FRO
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.sumofsquaresFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.sumofsquaresFunction.markdown',
{
defaultMessage: `### SUM_OF_SQUARES
Returns the sum of squares of input values in the field field_name.
@ -1055,7 +1061,7 @@ SELECT MIN(salary) AS min, MAX(salary) AS max, SUM_OF_SQUARES(salary) AS sumsq
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.varpopFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.varpopFunction',
{
defaultMessage: 'VAR_POP',
}
@ -1063,7 +1069,7 @@ SELECT MIN(salary) AS min, MAX(salary) AS max, SUM_OF_SQUARES(salary) AS sumsq
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.varpopFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.varpopFunction.markdown',
{
defaultMessage: `### VAR_POP
Returns the population variance of input values in the field field_name.
@ -1086,7 +1092,7 @@ SELECT MIN(salary) AS min, MAX(salary) AS max, VAR_POP(salary) AS varpop FROM em
},
{
label: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.varsampFunction',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.varsampFunction',
{
defaultMessage: 'VAR_SAMP',
}
@ -1094,7 +1100,7 @@ SELECT MIN(salary) AS min, MAX(salary) AS max, VAR_POP(salary) AS varpop FROM em
description: (
<Markdown
markdown={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentation.varsampFunction.markdown',
'textBasedEditor.query.textBasedLanguagesEditor.documentation.varsampFunction.markdown',
{
defaultMessage: `### VAR_SAMP
Returns the sample variance of input values in the field field_name.

View file

@ -12,7 +12,10 @@ import { IUiSettingsClient } from '@kbn/core/public';
import { mountWithIntl as mount } from '@kbn/test-jest-helpers';
import { findTestSubject } from '@elastic/eui/lib/test';
import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
import { TextBasedLanguagesEditor, TextBasedLanguagesEditorProps } from '.';
import {
TextBasedLanguagesEditor,
TextBasedLanguagesEditorProps,
} from './text_based_languages_editor';
describe('TextBasedLanguagesEditor', () => {
const uiConfig: Record<string, any> = {};
@ -47,7 +50,7 @@ describe('TextBasedLanguagesEditor', () => {
it('should render the editor component', async () => {
await act(async () => {
const component = mount(renderTextBasedLanguagesEditorComponent({ ...props }));
expect(component.find('[data-test-subj="unifiedTextLangEditor"]').length).not.toBe(0);
expect(component.find('[data-test-subj="TextBasedLangEditor"]').length).not.toBe(0);
});
});
@ -55,7 +58,7 @@ describe('TextBasedLanguagesEditor', () => {
await act(async () => {
const component = mount(renderTextBasedLanguagesEditorComponent({ ...props }));
expect(
component.find('[data-test-subj="unifiedTextLangEditor-inline-lines-badge"]').length
component.find('[data-test-subj="TextBasedLangEditor-inline-lines-badge"]').length
).not.toBe(0);
});
});
@ -68,7 +71,7 @@ describe('TextBasedLanguagesEditor', () => {
await act(async () => {
const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps }));
expect(
component.find('[data-test-subj="unifiedTextLangEditor-inline-errors-badge"]').length
component.find('[data-test-subj="TextBasedLangEditor-inline-errors-badge"]').length
).not.toBe(0);
});
});
@ -76,9 +79,9 @@ describe('TextBasedLanguagesEditor', () => {
it('should render the correct buttons for the inline code editor mode', async () => {
await act(async () => {
const component = mount(renderTextBasedLanguagesEditorComponent({ ...props }));
expect(component.find('[data-test-subj="unifiedTextLangEditor-expand"]').length).not.toBe(0);
expect(component.find('[data-test-subj="TextBasedLangEditor-expand"]').length).not.toBe(0);
expect(
component.find('[data-test-subj="unifiedTextLangEditor-inline-documentation"]').length
component.find('[data-test-subj="TextBasedLangEditor-inline-documentation"]').length
).not.toBe(0);
});
});
@ -91,7 +94,7 @@ describe('TextBasedLanguagesEditor', () => {
};
await act(async () => {
const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps }));
findTestSubject(component, 'unifiedTextLangEditor-expand').simulate('click');
findTestSubject(component, 'TextBasedLangEditor-expand').simulate('click');
expect(expandCodeEditorSpy).toHaveBeenCalled();
});
});
@ -104,13 +107,11 @@ describe('TextBasedLanguagesEditor', () => {
await act(async () => {
const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps }));
expect(
component.find('[data-test-subj="unifiedTextLangEditor-toggleWordWrap"]').length
component.find('[data-test-subj="TextBasedLangEditor-toggleWordWrap"]').length
).not.toBe(0);
expect(component.find('[data-test-subj="unifiedTextLangEditor-minimize"]').length).not.toBe(
0
);
expect(component.find('[data-test-subj="TextBasedLangEditor-minimize"]').length).not.toBe(0);
expect(
component.find('[data-test-subj="unifiedTextLangEditor-documentation"]').length
component.find('[data-test-subj="TextBasedLangEditor-documentation"]').length
).not.toBe(0);
});
});
@ -124,7 +125,7 @@ describe('TextBasedLanguagesEditor', () => {
};
await act(async () => {
const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps }));
findTestSubject(component, 'unifiedTextLangEditor-minimize').simulate('click');
findTestSubject(component, 'TextBasedLangEditor-minimize').simulate('click');
expect(expandCodeEditorSpy).toHaveBeenCalled();
});
});
@ -136,7 +137,7 @@ describe('TextBasedLanguagesEditor', () => {
};
await act(async () => {
const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps }));
expect(component.find('[data-test-subj="unifiedTextLangEditor-resize"]').length).not.toBe(0);
expect(component.find('[data-test-subj="TextBasedLangEditor-resize"]').length).not.toBe(0);
});
});
@ -147,9 +148,9 @@ describe('TextBasedLanguagesEditor', () => {
};
await act(async () => {
const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps }));
expect(component.find('[data-test-subj="unifiedTextLangEditor-footer"]').length).not.toBe(0);
expect(component.find('[data-test-subj="TextBasedLangEditor-footer"]').length).not.toBe(0);
expect(
component.find('[data-test-subj="unifiedTextLangEditor-footer-lines"]').at(0).text()
component.find('[data-test-subj="TextBasedLangEditor-footer-lines"]').at(0).text()
).toBe('1 line');
});
});

View file

@ -6,7 +6,7 @@
* Side Public License, v 1.
*/
import React, { useRef, memo, useEffect, useState, useCallback } from 'react';
import React, { useRef, useEffect, useState, useCallback, memo } from 'react';
import classNames from 'classnames';
import { SQLLang, monaco } from '@kbn/monaco';
import type { AggregateQuery } from '@kbn/es-query';
@ -15,7 +15,6 @@ import {
type LanguageDocumentationSections,
LanguageDocumentationPopover,
} from '@kbn/language-documentation-popover';
import { useKibana } from '@kbn/kibana-react-plugin/public';
import { i18n } from '@kbn/i18n';
import {
@ -49,7 +48,6 @@ import { EditorFooter } from './editor_footer';
import { ResizableButton } from './resizable_button';
import './overwrite.scss';
import type { IUnifiedSearchPluginServices } from '../../types';
export interface TextBasedLanguagesEditorProps {
query: AggregateQuery;
@ -59,6 +57,8 @@ export interface TextBasedLanguagesEditorProps {
isCodeEditorExpanded: boolean;
errors?: Error[];
isDisabled?: boolean;
isDarkMode?: boolean;
dataTestSubj?: string;
}
const MAX_COMPACT_VIEW_LENGTH = 250;
@ -81,7 +81,6 @@ const languageId = (language: string) => {
let clickedOutside = false;
let initialRender = true;
let updateLinesFromModel = false;
export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({
query,
onTextLangQueryChange,
@ -90,6 +89,8 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({
isCodeEditorExpanded,
errors,
isDisabled,
isDarkMode,
dataTestSubj,
}: TextBasedLanguagesEditorProps) {
const { euiTheme } = useEuiTheme();
const language = getAggregateQueryMode(query);
@ -107,8 +108,6 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({
const [editorErrors, setEditorErrors] = useState<MonacoError[]>([]);
const [documentationSections, setDocumentationSections] =
useState<LanguageDocumentationSections>();
const kibana = useKibana<IUnifiedSearchPluginServices>();
const { uiSettings } = kibana.services;
const styles = textBasedLanguagedEditorStyles(
euiTheme,
@ -118,15 +117,15 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({
Boolean(errors?.length),
isCodeEditorExpandedFocused
);
const isDark = uiSettings.get('theme:darkMode');
const isDark = isDarkMode;
const editorModel = useRef<monaco.editor.ITextModel>();
const editor1 = useRef<monaco.editor.IStandaloneCodeEditor>();
const containerRef = useRef<HTMLElement>(null);
const editorClassName = classNames('unifiedTextLangEditor', {
'unifiedTextLangEditor--expanded': isCodeEditorExpanded,
'unifiedTextLangEditor--compact': isCompactFocused,
'unifiedTextLangEditor--initial': !isCompactFocused,
const editorClassName = classNames('TextBasedLangEditor', {
'TextBasedLangEditor--expanded': isCodeEditorExpanded,
'TextBasedLangEditor--compact': isCompactFocused,
'TextBasedLangEditor--initial': !isCompactFocused,
});
// When the editor is on full size mode, the user can resize the height of the editor.
@ -323,9 +322,10 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({
const sections = await getDocumentationSections(language);
setDocumentationSections(sections);
}
getDocumentation();
}, [language]);
if (!documentationSections) {
getDocumentation();
}
}, [language, documentationSections]);
const codeEditorOptions: CodeEditorProps['options'] = {
automaticLayout: false,
@ -377,13 +377,13 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({
content={
isWordWrapped
? i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.disableWordWrapLabel',
'textBasedEditor.query.textBasedLanguagesEditor.disableWordWrapLabel',
{
defaultMessage: 'Disable word wrap',
}
)
: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.EnableWordWrapLabel',
'textBasedEditor.query.textBasedLanguagesEditor.EnableWordWrapLabel',
{
defaultMessage: 'Enable word wrap',
}
@ -393,17 +393,17 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({
<EuiButtonIcon
iconType={isWordWrapped ? 'wordWrap' : 'wordWrapDisabled'}
color="text"
data-test-subj="unifiedTextLangEditor-toggleWordWrap"
data-test-subj="TextBasedLangEditor-toggleWordWrap"
aria-label={
isWordWrapped
? i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.disableWordWrapLabel',
'textBasedEditor.query.textBasedLanguagesEditor.disableWordWrapLabel',
{
defaultMessage: 'Disable word wrap',
}
)
: i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.EnableWordWrapLabel',
'textBasedEditor.query.textBasedLanguagesEditor.EnableWordWrapLabel',
{
defaultMessage: 'Enable word wrap',
}
@ -425,7 +425,7 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({
<EuiToolTip
position="top"
content={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.minimizeTooltip',
'textBasedEditor.query.textBasedLanguagesEditor.minimizeTooltip',
{
defaultMessage: 'Compact query editor',
}
@ -435,12 +435,12 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({
iconType="minimize"
color="text"
aria-label={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.MinimizeEditor',
'textBasedEditor.query.textBasedLanguagesEditor.MinimizeEditor',
{
defaultMessage: 'Minimize editor',
}
)}
data-test-subj="unifiedTextLangEditor-minimize"
data-test-subj="TextBasedLangEditor-minimize"
onClick={() => {
expandCodeEditor(false);
updateLinesFromModel = false;
@ -454,9 +454,9 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({
sections={documentationSections}
buttonProps={{
color: 'text',
'data-test-subj': 'unifiedTextLangEditor-documentation',
'data-test-subj': 'TextBasedLangEditor-documentation',
'aria-label': i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentationLabel',
'textBasedEditor.query.textBasedLanguagesEditor.documentationLabel',
{
defaultMessage: 'Documentation',
}
@ -482,18 +482,24 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({
}}
>
<div ref={resizeRef} css={styles.resizableContainer}>
<EuiFlexItem data-test-subj="unifiedTextLangEditor" className={editorClassName}>
<EuiFlexItem
data-test-subj={dataTestSubj ?? 'TextBasedLangEditor'}
className={editorClassName}
>
<div css={styles.editorContainer}>
{!isCompactFocused && (
<EuiBadge
color={euiTheme.colors.lightShade}
css={styles.linesBadge}
data-test-subj="unifiedTextLangEditor-inline-lines-badge"
data-test-subj="TextBasedLangEditor-inline-lines-badge"
>
{i18n.translate('unifiedSearch.query.textBasedLanguagesEditor.lineCount', {
defaultMessage: '{count} {count, plural, one {line} other {lines}}',
values: { count: lines },
})}
{i18n.translate(
'textBasedEditor.query.textBasedLanguagesEditor.lineCount',
{
defaultMessage: '{count} {count, plural, one {line} other {lines}}',
values: { count: lines },
}
)}
</EuiBadge>
)}
{!isCompactFocused && errors && errors.length > 0 && (
@ -502,7 +508,7 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({
css={styles.errorsBadge}
iconType="error"
iconSide="left"
data-test-subj="unifiedTextLangEditor-inline-errors-badge"
data-test-subj="TextBasedLangEditor-inline-errors-badge"
>
{errors.length}
</EuiBadge>
@ -546,7 +552,7 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({
<EuiToolTip
position="top"
content={i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.expandTooltip',
'textBasedEditor.query.textBasedLanguagesEditor.expandTooltip',
{
defaultMessage: 'Expand query editor',
}
@ -558,7 +564,7 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({
size="m"
aria-label="Expand"
onClick={() => expandCodeEditor(true)}
data-test-subj="unifiedTextLangEditor-expand"
data-test-subj="TextBasedLangEditor-expand"
css={{
borderRadius: 0,
backgroundColor: isDark ? euiTheme.colors.lightestShade : '#e9edf3',
@ -573,9 +579,9 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({
sections={documentationSections}
buttonProps={{
display: 'empty',
'data-test-subj': 'unifiedTextLangEditor-inline-documentation',
'data-test-subj': 'TextBasedLangEditor-inline-documentation',
'aria-label': i18n.translate(
'unifiedSearch.query.textBasedLanguagesEditor.documentationLabel',
'textBasedEditor.query.textBasedLanguagesEditor.documentationLabel',
{
defaultMessage: 'Documentation',
}

View file

@ -0,0 +1,27 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"outDir": "target/types",
"types": [
"jest",
"node",
"@emotion/react/types/css-prop"
]
},
"include": [
"**/*.ts",
"**/*.tsx"
],
"kbn_references": [
"@kbn/i18n",
"@kbn/monaco",
"@kbn/es-query",
"@kbn/core",
"@kbn/kibana-react-plugin",
"@kbn/language-documentation-popover",
"@kbn/test-jest-helpers"
],
"exclude": [
"target/**/*",
]
}

View file

@ -45,6 +45,7 @@ export const storybookAliases = {
observability: 'x-pack/plugins/observability/.storybook',
presentation: 'src/plugins/presentation_util/storybook',
random_sampling: 'x-pack/packages/kbn-random-sampling/.storybook',
text_based_editor: 'packages/kbn-text-based-editor/.storybook',
security_solution: 'x-pack/plugins/security_solution/.storybook',
security_solution_packages: 'x-pack/packages/security-solution/storybook/config',
serverless: 'packages/serverless/storybook/config',

View file

@ -0,0 +1,6 @@
{
"prefix": "textBasedLanguages",
"paths": {
"textBasedLanguages": "."
}
}

View file

@ -0,0 +1,34 @@
# @kbn/text-based-languages
## Component properties
The editor accepts the following properties:
- query: This is the **AggregateQuery** query. i.e. (`{esql: from index1 | limit 10}`)
- onTextLangQueryChange: callback that is called every time the query is updated
- expandCodeEditor: flag that opens the editor on the expanded mode
- errors: array of `Error`.
- onTextLangQuerySubmit: callback that is called when the user submits the query
```
To use it on your application, you need to add the textBasedLanguages to your requiredBundles and the @kbn/text-based-languages to your tsconfig.json and use the component like that:
import { TextBasedLangEditor } from '@kbn/text-based-languages/public';
<TextBasedLangEditor
query={query}
onTextLangQueryChange={onTextLangQueryChange}
expandCodeEditor={(status: boolean) => setCodeEditorIsExpanded(status)}
isCodeEditorExpanded={codeEditorIsExpandedFlag}
errors={props.textBasedLanguageModeErrors}
isDisabled={false}
onTextLangQuerySubmit={onTextLangQuerySubmit}
/>
```
## Usage so far
The TextBasedLanguagesEditor is currently part of the unified search component.
If your application uses the dataview picker then it can be enabled by adding
```
textBasedLanguages: ['ESQL'],
```
om the dataViewPickerProps property.

View file

@ -0,0 +1,19 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
module.exports = {
preset: '@kbn/test',
rootDir: '../../..',
roots: ['<rootDir>/src/plugins/text_based_languages'],
coverageDirectory: '<rootDir>/target/kibana-coverage/jest/src/plugins/text_based_languages',
coverageReporters: ['text', 'html'],
collectCoverageFrom: [
'<rootDir>/src/plugins/text_based_languages/{common,public,server}/**/*.{js,ts,tsx}',
],
setupFiles: ['jest-canvas-mock'],
};

View file

@ -0,0 +1,13 @@
{
"type": "plugin",
"id": "@kbn/text-based-languages",
"owner": "@elastic/kibana-visualizations",
"plugin": {
"id": "textBasedLanguages",
"server": false,
"browser": true,
"requiredBundles": [
"kibanaReact",
]
}
}

View file

@ -0,0 +1,6 @@
{
"name": "@kbn/text-based-languages",
"private": true,
"version": "1.0.0",
"license": "SSPL-1.0 OR Elastic License 2.0"
}

View file

@ -0,0 +1,36 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
import React from 'react';
import { EuiLoadingSpinner } from '@elastic/eui';
import useAsync from 'react-use/lib/useAsync';
import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
import { TextBasedLanguagesEditorProps } from '@kbn/text-based-editor';
import { untilPluginStartServicesReady } from './kibana_services';
export const TextBasedLangEditor = (props: TextBasedLanguagesEditorProps) => {
const { loading, value } = useAsync(() => {
const startServicesPromise = untilPluginStartServicesReady();
const modulePromise = import('@kbn/text-based-editor');
return Promise.all([startServicesPromise, modulePromise]);
}, []);
const TextBasedLanguagesEditor = value?.[1]?.default;
const deps = value?.[0];
if (loading || !deps || !TextBasedLanguagesEditor) return <EuiLoadingSpinner />;
return (
<KibanaContextProvider
services={{
...deps.core,
}}
>
<TextBasedLanguagesEditor {...props} isDarkMode={deps.darkMode} />
</KibanaContextProvider>
);
};

View file

@ -0,0 +1,16 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
import { TextBasedLanguagesPlugin } from './plugin';
export type { TextBasedLanguagesEditorProps } from '@kbn/text-based-editor';
export type { TextBasedLanguagesPluginStart } from './types';
export { TextBasedLangEditor } from './create_editor';
export function plugin() {
return new TextBasedLanguagesPlugin();
}

View file

@ -0,0 +1,35 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
import { BehaviorSubject } from 'rxjs';
import { CoreStart } from '@kbn/core/public';
export let core: CoreStart;
const servicesReady$ = new BehaviorSubject<{ core: CoreStart; darkMode: boolean } | undefined>(
undefined
);
export const untilPluginStartServicesReady = () => {
if (servicesReady$.value) return Promise.resolve(servicesReady$.value);
return new Promise<{ core: CoreStart; darkMode: boolean }>((resolve) => {
const subscription = servicesReady$.subscribe((deps) => {
if (deps) {
subscription.unsubscribe();
resolve(deps);
}
});
});
};
export const setKibanaServices = (kibanaCore: CoreStart) => {
core = kibanaCore;
core.theme.theme$.subscribe(({ darkMode }) => {
servicesReady$.next({ core, darkMode });
});
};

View file

@ -0,0 +1,22 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
import { Plugin, CoreStart } from '@kbn/core/public';
import { setKibanaServices } from './kibana_services';
export class TextBasedLanguagesPlugin implements Plugin<{}, void> {
public setup() {
return {};
}
public start(core: CoreStart): void {
setKibanaServices(core);
}
public stop() {}
}

View file

@ -0,0 +1,12 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
import { TextBasedLanguagesEditorProps } from '@kbn/text-based-editor';
export interface TextBasedLanguagesPluginStart {
Editor: React.ComponentType<TextBasedLanguagesEditorProps>;
}

View file

@ -0,0 +1,21 @@
{
"extends": "../../../tsconfig.base.json",
"compilerOptions": {
"outDir": "target/types",
},
"include": [
"../../typings/**/*",
"common/**/*",
"public/**/*",
"server/**/*",
],
"kbn_references": [
"@kbn/text-based-editor",
"@kbn/kibana-react-plugin",
"@kbn/core",
],
"exclude": [
"target/**/*",
]
}

View file

@ -5,5 +5,22 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
import { defaultConfig } from '@kbn/storybook';
import webpackMerge from 'webpack-merge';
import { resolve } from 'path';
module.exports = require('@kbn/storybook').defaultConfig;
const mockConfig = {
resolve: {
alias: {
'@kbn/text-based-languages/public': resolve(
__dirname,
'../public/mocks/text_based_languages_editor.tsx'
),
},
},
};
module.exports = {
...defaultConfig,
webpackFinal: (config) => webpackMerge(config, mockConfig),
};

View file

@ -26,7 +26,8 @@
"requiredBundles": [
"kibanaUtils",
"kibanaReact",
"data"
"data",
"textBasedLanguages"
]
}
}

View file

@ -83,6 +83,7 @@ const services = {
uiSettings: {
get: () => {},
},
settings: { client: { get: () => {} } },
savedObjects: action('savedObjects'),
notifications: action('notifications'),
http: {

View file

@ -0,0 +1,31 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
import React from 'react';
import { withSuspense } from '@kbn/shared-ux-utility';
import { TextBasedLanguagesEditorProps } from '@kbn/text-based-editor';
import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
const TextBasedLanguagesEditorLazy = React.lazy(() => import('@kbn/text-based-editor'));
const TextBasedLanguagesEditor = withSuspense(TextBasedLanguagesEditorLazy);
function createEditor() {
return (props: TextBasedLanguagesEditorProps) => {
return (
<KibanaContextProvider
services={{
settings: { client: { get: () => {} } },
uiSettings: { get: () => {} },
}}
>
<TextBasedLanguagesEditor {...props} isDarkMode={false} />
</KibanaContextProvider>
);
};
}
export const TextBasedLangEditor = createEditor();

View file

@ -13,6 +13,7 @@ import deepEqual from 'fast-deep-equal';
import useObservable from 'react-use/lib/useObservable';
import type { Filter, TimeRange, Query, AggregateQuery } from '@kbn/es-query';
import { getAggregateQueryMode, isOfQueryType, isOfAggregateQueryType } from '@kbn/es-query';
import { TextBasedLangEditor } from '@kbn/text-based-languages/public';
import { EMPTY } from 'rxjs';
import { map } from 'rxjs/operators';
import { throttle } from 'lodash';
@ -46,7 +47,6 @@ import {
import { FilterButtonGroup } from '../filter_bar/filter_button_group/filter_button_group';
import type { SuggestionsListSize } from '../typeahead/suggestions_component';
import { TextBasedLanguagesEditor } from './text_based_languages_editor';
import './query_bar.scss';
export const strings = {
@ -581,7 +581,7 @@ export const QueryBarTopRow = React.memo(
isQueryLangSelected &&
props.query &&
isOfAggregateQueryType(props.query) && (
<TextBasedLanguagesEditor
<TextBasedLangEditor
query={props.query}
onTextLangQueryChange={props.onTextLangQueryChange}
expandCodeEditor={(status: boolean) => setCodeEditorIsExpanded(status)}
@ -594,6 +594,7 @@ export const QueryBarTopRow = React.memo(
})
}
isDisabled={props.isDisabled}
data-test-subj="unifiedTextLangEditor"
/>
)
);

View file

@ -1,45 +0,0 @@
.unifiedTextLangEditor .monaco-editor {
border-top-left-radius: 6px;
border-bottom-left-radius: 6px;
}
.unifiedTextLangEditor .monaco-editor .monaco-hover {
display: none !important;
}
.unifiedTextLangEditor--expanded .monaco-editor .monaco-hover {
display: block !important;
}
.unifiedTextLangEditor .monaco-editor .margin {
border-top-left-radius: 6px;
border-bottom-left-radius: 6px;
}
.unifiedTextLangEditor--compact .monaco-editor {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.unifiedTextLangEditor--compact .monaco-editor .margin {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
background-color: $euiColorLightestShade;
color: $euiColorDisabledText;
}
.unifiedTextLangEditor .monaco-editor .margin-view-overlays .line-numbers {
color: $euiColorDisabledText;
}
.unifiedTextLangEditor .monaco-editor .current-line ~ .line-numbers {
color: $euiTextSubduedColor;
}
.unifiedTextLangEditor--compact .monaco-editor .monaco-scrollable-element {
margin-left: 4px;
}
.unifiedTextLangEditor_errorMessage {
@include euiTextBreakWord;
}

View file

@ -31,7 +31,6 @@
"@kbn/analytics",
"@kbn/datemath",
"@kbn/monaco",
"@kbn/language-documentation-popover",
"@kbn/field-types",
"@kbn/config",
"@kbn/config-schema",
@ -39,6 +38,8 @@
"@kbn/react-field",
"@kbn/ui-theme",
"@kbn/saved-objects-management-plugin",
"@kbn/text-based-languages",
"@kbn/text-based-editor",
],
"exclude": [
"target/**/*",

View file

@ -60,7 +60,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.discover.waitUntilSidebarHasLoaded();
expect(await testSubjects.exists('fieldListFiltersFieldSearch')).to.be(true);
expect(await testSubjects.exists('unifiedTextLangEditor')).to.be(true);
expect(await testSubjects.exists('TextBasedLangEditor')).to.be(true);
expect(await testSubjects.exists('superDatePickerToggleQuickMenuButton')).to.be(true);
expect(await testSubjects.exists('showQueryBarMenu')).to.be(false);

View file

@ -1334,6 +1334,10 @@
"@kbn/test-subj-selector/*": ["packages/kbn-test-subj-selector/*"],
"@kbn/testing-embedded-lens-plugin": ["x-pack/examples/testing_embedded_lens"],
"@kbn/testing-embedded-lens-plugin/*": ["x-pack/examples/testing_embedded_lens/*"],
"@kbn/text-based-editor": ["packages/kbn-text-based-editor"],
"@kbn/text-based-editor/*": ["packages/kbn-text-based-editor/*"],
"@kbn/text-based-languages": ["src/plugins/text_based_languages"],
"@kbn/text-based-languages/*": ["src/plugins/text_based_languages/*"],
"@kbn/third-party-lens-navigation-prompt-plugin": ["x-pack/examples/third_party_lens_navigation_prompt"],
"@kbn/third-party-lens-navigation-prompt-plugin/*": ["x-pack/examples/third_party_lens_navigation_prompt/*"],
"@kbn/third-party-vis-lens-example-plugin": ["x-pack/examples/third_party_vis_lens_example"],

View file

@ -862,7 +862,7 @@ export function FormulaEditor({
buttonProps={{
color: 'text',
className: 'lnsFormula__editorHelp lnsFormula__editorHelp--overlay',
'data-test-subj': 'unifiedTextLangEditor-documentation',
'data-test-subj': 'TextBasedLangEditor-documentation',
'aria-label': i18n.translate(
'xpack.lens.formula.editorHelpInlineShowToolTip',
{

View file

@ -5748,48 +5748,48 @@
"unifiedSearch.query.queryBar.KQLNestedQuerySyntaxInfoText": "Il semblerait que votre requête porte sur un champ imbriqué. Selon le résultat visé, il existe plusieurs façons de construire une syntaxe KQL pour des requêtes imbriquées. Apprenez-en plus dans notre {link}.",
"unifiedSearch.query.queryBar.searchInputAriaLabel": "Commencer à taper pour rechercher et filtrer la page {pageType}",
"unifiedSearch.query.queryBar.searchInputPlaceholder": "Filtrer vos données à l'aide de la syntaxe {language}",
"unifiedSearch.query.textBasedLanguagesEditor.errorCount": "{count} {count, plural, one {erreur} many {erreurs} other {erreurs}}",
"unifiedSearch.query.textBasedLanguagesEditor.lineCount": "{count} {count, plural, one {ligne} many {lignes} other {lignes}}",
"unifiedSearch.query.textBasedLanguagesEditor.lineNumber": "Ligne {lineNumber}",
"textBasedEditor.query.textBasedLanguagesEditor.errorCount": "{count} {count, plural, one {erreur} other {erreurs}}",
"textBasedEditor.query.textBasedLanguagesEditor.lineCount": "{count} {count, plural, one {ligne} other {lignes}}",
"textBasedEditor.query.textBasedLanguagesEditor.lineNumber": "Ligne {lineNumber}",
"unifiedSearch.search.searchBar.savedQueryPopoverConfirmDeletionTitle": "Supprimer \"{savedQueryName}\" ?",
"unifiedSearch.search.searchBar.savedQueryPopoverSaveChangesButtonAriaLabel": "Enregistrer les modifications apportées à {title}",
"unifiedSearch.search.unableToGetSavedQueryToastTitle": "Impossible de charger la requête {savedQueryId}",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.addOperator.markdown": "### Add (+)\n```\nSELECT 1 + 1 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.andOperator.markdown": "### AND\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no > 10000 AND emp_no &lt; 10005 ORDER BY emp_no LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.averageFunction.markdown": "### AVG\nRetourne la moyenne (moyenne arithmétique) des valeurs entrées.\n```\nAVG(numeric_field)\n```\n- champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n```\nSELECT AVG(salary) AS avg FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.between.markdown": "### Between\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no BETWEEN 9990 AND 10003 ORDER BY emp_no\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.comparison.markdown": "### Comparison (&lt;, &lt;=, >, >=)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt; 10003 ORDER BY emp_no LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countAllFunction.markdown": "### Count (All)\nRenvoie le nombre total de toutes les valeurs non nulles en entrée. COUNT(<field_name>) et COUNT(ALL <field_name>) sont équivalents.\n\n```\nCOUNT(ALL field_name) \n```\n- nom du champ. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n```\nSELECT COUNT(ALL last_name) AS count_all, COUNT(DISTINCT last_name) count_distinct FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countDistinctFunction.markdown": "### Count (Distinct)\nRenvoie le nombre total de valeurs non nulles distinctes dans les valeurs en entrée.\n\n```\nCOUNT(DISTINCT field_name)\n```\n- Entrée : un nom de champ.\n- Sortie : une valeur numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n```\nSELECT COUNT(DISTINCT hire_date) unique_hires, COUNT(hire_date) AS hires FROM emp\n\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countFunction.markdown": "### Count\nRenvoie le nombre total de valeurs en entrée.\n\n\n```\nCOUNT(expression)\n```\n- expression. Nom de champ, caractère générique (*) ou n'importe quelle valeur numérique. Pour COUNT(*) ou COUNT(<literal>), toutes les valeurs sont prises en compte, même celles manquantes ou nulles. Pour COUNT(<field_name>), les valeurs nulles ne sont pas prises en compte.\n```\nSELECT COUNT(*) AS count FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.divideOperator.markdown": "### Divide (/)\n```\nSELECT 6 / 3 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.equality.markdown": "### Equality (=)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no = 10000 LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.firstFunction.markdown": "### FIRST / FIRST_VALUE\nRenvoie la première valeur non nulle (si elle existe) de la colonne d'entrée field_name triée selon la colonne ordering_field_name. Si la valeur ordering_field_name n'est pas fournie, seule la colonne field_name est utilisée pour le tri. \n\n```\nFIRST(\n field_name \n [, ordering_field_name])\n```\n- Nom du champ : champ cible de l'agrégation\n- ordering_field_name : champ facultatif utilisé pour le tri.\n\n```\nSELECT gender, FIRST(first_name, birth_date) FROM emp GROUP BY gender ORDER BY gender\n```\n\n- FIRST ne peut pas être utilisé dans une clause HAVING.\n- FIRST ne peut pas être utilisé avec des colonnes de type texte, sauf si le champ est aussi enregistré comme mot-clé.\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.inequality.markdown": "### Inequality (&lt;> or !=)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt;> 10000 ORDER BY emp_no LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.inOperator.markdown": "### IN (<value1>, <value2>, ...)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no IN (10000, 10001, 10002, 999) ORDER BY emp_no LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.kurtosisFunction.markdown": "### KURTOSIS\nQuantifier la forme de la distribution des valeurs en entrée dans le champ field_name.\n\n```\nKURTOSIS(field_name) \n```\n- champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, KURTOSIS(salary) AS k FROM emp\n```\n\n- KURTOSIS ne peut pas être utilisé en plus des fonctions ou des opérateurs scalaires, uniquement sur un champ. \n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.lastFunction.markdown": "### LAST / LAST_VALUE\nInverse de FIRST/FIRST_VALUE. Renvoie la dernière valeur non nulle (si elle existe) de la colonne d'entrée field_name triée par ordre croissant selon la colonne ordering_field_name. Si la valeur ordering_field_name n'est pas fournie, seule la colonne field_name est utilisée pour le tri. \n\n```\nLAST(\n field_name \n [, ordering_field_name])\n```\n- Nom du champ : champ cible de l'agrégation\n- ordering_field_name : champ facultatif utilisé pour le tri.\n```\nSELECT gender, LAST(first_name) FROM emp GROUP BY gender ORDER BY gender\n```\n- LAST ne peut pas être utilisé dans une clause HAVING.\n- LAST ne peut pas être utilisé avec des colonnes de type texte, sauf si le champ est aussi enregistré comme mot-clé.\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.madFunction.markdown": "### MAD\nMesure la variabilité des valeurs d'entrée dans le champ field_name.\n\n```\nMAD(field_name) \n```\n- champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, AVG(salary) AS avg, MAD(salary) AS mad FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.markdown": "## À propos d'Elasticsearch SQL\n\nUtilisez Elasticsearch SQL pour rechercher et agréger les données dans Elasticsearch. Ce langage de requête fournit une recherche full text avec une syntaxe connue. Voici un exemple de requête :\n \n```\nSELECT * FROM library \nORDER BY page_count DESC LIMIT 5\n```\n \nElasticsearch SQL :\n\n- Fournit un jeu complet d'opérateurs et de fonctions intégrés.\n- Suit la terminologie et les conventions SQL.\n- Accepte une commande par ligne. Une commande est une séquence de jetons terminée par la fin du flux d'entrée\n \n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.maxFunction.markdown": "### MAX\nRetourne la valeur maximale de toutes les valeurs en entrée dans le champ field_name.\n\n```\nMAX(field_name) \n```\n- champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MAX(salary) AS max FROM emp\n```\n\n- MAX sur un champ de type texte ou mot-clé est traduit en FIRST/FIRST_VALUE et ne peut donc pas être utilisé dans la clause HAVING.\n\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.minFunction.markdown": "### MIN\nRetourne la valeur minimale de toutes les valeurs en entrée dans le champ field_name.\n\n```\nMIN(field_name) \n```\n- champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min FROM emp\n```\n\n- MIN sur un champ de type texte ou mot-clé est traduit en FIRST/FIRST_VALUE et ne peut donc pas être utilisé dans la clause HAVING.\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.moduloOperator.markdown": "### Modulo or remainder(%)\n```\nSELECT 5 % 2 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.multiplyOperator.markdown": "### Multiply (*)\n```\nSELECT 2 * 3 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.negateOperator.markdown": "### Negate (unary -)\n```\nSELECT - 1 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.notOperator.markdown": "### NOT\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE NOT emp_no = 10000 LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.nullNotNull.markdown": "### IS NULL/IS NOT NULL\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no IS NOT NULL AND gender IS NULL\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.nullSafeEquality.markdown": "### Null safe equality:\n```\nSELECT 'elastic' &lt;=> null AS \"equals\"\n\n égal\n---------------\nfaux\n```\n```\nSELECT null &lt;=> null AS \"equals\"\n\n égal\n---------------\nvrai\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.orOperator.markdown": "### OR\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt; 10003 OR emp_no = 10005 ORDER BY emp_no LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.percentileFunction.markdown": "### PERCENTILE\nRetourne le centile n (représenté par le paramètre numeric_exp) des valeurs en entrée dans le champ field_name.\n\n```\nPERCENTILE(\n field_name, \n percentile[, \n method[, \n method_parameter]])\n```\n- field_name : champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n- centile : expression numérique (doit être une constante et ne doit pas être basé sur un champ). Si la valeur est nulle, la fonction renvoie une valeur nulle.\n- method : chaîne littérale facultative pour l'algorithme de centile. Valeurs possibles : tdigest ou hdr. La valeur par défaut est tdigest.\n- method_parameter : numérique littéral facultatif qui configure l'algorithme de centile. Configure la compression pour tdigest ou number_of_significant_value_digits pour hdr. La valeur par défaut est la même que celle de l'algorithme de sauvegarde.\n\n```\nSELECT\n languages,\n PERCENTILE(salary, 97.3, 'tdigest', 100.0) AS \"97.3_TDigest\",\n PERCENTILE(salary, 97.3, 'hdr', 3) AS \"97.3_HDR\"\nFROM emp\nGROUP BY languages\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.percentileRankFunction.markdown": "### PERCENTILE_RANK\nRetourne le rang centile n (représenté par le paramètre numeric_exp) des valeurs en entrée dans le champ field_name.\n\n```\nPERCENTILE_RANK(\n field_name, \n value[, \n method[, \n method_parameter]]) \n```\n- field_name : champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n- centile : expression numérique (doit être une constante et ne doit pas être basé sur un champ). Si la valeur est nulle, la fonction renvoie une valeur nulle.\n- method : chaîne littérale facultative pour l'algorithme de centile. Valeurs possibles : tdigest ou hdr. La valeur par défaut est tdigest.\n- method_parameter : numérique littéral facultatif qui configure l'algorithme de centile. Configure la compression pour tdigest ou number_of_significant_value_digits pour hdr. La valeur par défaut est la même que celle de l'algorithme de sauvegarde.\n\n```\nSELECT\n languages,\n ROUND(PERCENTILE_RANK(salary, 65000, 'tdigest', 100.0), 2) AS \"rank_TDigest\",\n ROUND(PERCENTILE_RANK(salary, 65000, 'hdr', 3), 2) AS \"rank_HDR\"\nFROM emp\nGROUP BY languages\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.skewnessFunction.markdown": "### SKEWNESS\nQuantifier la distribution asymétrique des valeurs en entrée dans le champ field_name.\n\n```\nSKEWNESS(field_name) \n```\n- field_name : champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, SKEWNESS(salary) AS s FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.stsdevpopFunction.markdown": "### STDDEV_POP\nRetourne l'écart type de population des valeurs en entrée dans le champ field_name.\n\n```\nSTDDEV_POP(field_name) \n```\n- field_name : champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, STDDEV_POP(salary) AS stddev FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.stsdevsampFunction.markdown": "### STDDEV_SAMP\nRetourne l'écart type de l'échantillon des valeurs en entrée dans le champ field_name.\n\n```\nSTDDEV_SAMP(field_name) \n```\n- field_name : champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, STDDEV_SAMP(salary) AS stddev FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.subtractOperator.markdown": "### Subtract (infix -)\n```\nSELECT 1 - 1 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.sumFunction.markdown": "### SUM\nRetourne la somme des valeurs en entrée dans le champ field_name.\n\n```\nSUM(field_name) \n```\n- champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT SUM(salary) AS sum FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.sumofsquaresFunction.markdown": "### SUM_OF_SQUARES\nRetourne la somme des carrés des valeurs en entrée dans le champ field_name.\n\n```\nSUM_OF_SQUARES(field_name) \n```\n- field_name : champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, SUM_OF_SQUARES(salary) AS sumsq\n FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.varpopFunction.markdown": "### VAR_POP\nRetourne la variance de population des valeurs en entrée dans le champ field_name.\n\n```\nVAR_POP(field_name) \n```\n- field_name : champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, VAR_POP(salary) AS varpop FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.varsampFunction.markdown": "### VAR_SAMP\nRetourne la variance de l'échantillon de valeurs en entrée dans le champ field_name.\n\n```\nVAR_SAMP(field_name) \n```\n- field_name : champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, VAR_SAMP(salary) AS varsamp FROM emp\n```\n ",
"unifiedSearch.search.unableToGetSavedQueryToastTitle": "Impossible de charger la requête enregistrée {savedQueryId}",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.addOperator.markdown": "### Add (+)\n```\nSELECT 1 + 1 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.andOperator.markdown": "### AND\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no > 10000 AND emp_no &lt; 10005 ORDER BY emp_no LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.averageFunction.markdown": "### AVG\nRetourne la moyenne (moyenne arithmétique) des valeurs entrées.\n```\nAVG(numeric_field)\n```\n- champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n```\nSELECT AVG(salary) AS avg FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.between.markdown": "### Between\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no BETWEEN 9990 AND 10003 ORDER BY emp_no\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.comparison.markdown": "### Comparison (&lt;, &lt;=, >, >=)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt; 10003 ORDER BY emp_no LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countAllFunction.markdown": "### Count (All)\nRenvoie le nombre total de toutes les valeurs non nulles en entrée. COUNT(<field_name>) et COUNT(ALL <field_name>) sont équivalents.\n\n```\nCOUNT(ALL field_name) \n```\n- nom du champ. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n```\nSELECT COUNT(ALL last_name) AS count_all, COUNT(DISTINCT last_name) count_distinct FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countDistinctFunction.markdown": "### Count (Distinct)\nRenvoie le nombre total de valeurs non nulles distinctes dans les valeurs en entrée.\n\n```\nCOUNT(DISTINCT field_name)\n```\n- Entrée : un nom de champ.\n- Sortie : une valeur numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n```\nSELECT COUNT(DISTINCT hire_date) unique_hires, COUNT(hire_date) AS hires FROM emp\n\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countFunction.markdown": "### Count\nRenvoie le nombre total de valeurs en entrée.\n\n\n```\nCOUNT(expression)\n```\n- expression. Nom de champ, caractère générique (*) ou n'importe quelle valeur numérique. Pour COUNT(*) ou COUNT(<literal>), toutes les valeurs sont prises en compte, même celles manquantes ou nulles. Pour COUNT(<field_name>), les valeurs nulles ne sont pas prises en compte.\n```\nSELECT COUNT(*) AS count FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.divideOperator.markdown": "### Divide (/)\n```\nSELECT 6 / 3 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.equality.markdown": "### Equality (=)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no = 10000 LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.firstFunction.markdown": "### FIRST / FIRST_VALUE\nRenvoie la première valeur non nulle (si elle existe) de la colonne d'entrée field_name triée selon la colonne ordering_field_name. Si la valeur ordering_field_name n'est pas fournie, seule la colonne field_name est utilisée pour le tri. \n\n```\nFIRST(\n field_name \n [, ordering_field_name])\n```\n- Nom du champ : champ cible de l'agrégation\n- ordering_field_name : champ facultatif utilisé pour le tri.\n\n```\nSELECT gender, FIRST(first_name, birth_date) FROM emp GROUP BY gender ORDER BY gender\n```\n\n- FIRST ne peut pas être utilisé dans une clause HAVING.\n- FIRST ne peut pas être utilisé avec des colonnes de type texte, sauf si le champ est aussi enregistré comme mot-clé.\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.inequality.markdown": "### Inequality (&lt;> or !=)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt;> 10000 ORDER BY emp_no LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.inOperator.markdown": "### IN (<value1>, <value2>, ...)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no IN (10000, 10001, 10002, 999) ORDER BY emp_no LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.kurtosisFunction.markdown": "### KURTOSIS\nQuantifier la forme de la distribution des valeurs en entrée dans le champ field_name.\n\n```\nKURTOSIS(field_name) \n```\n- champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, KURTOSIS(salary) AS k FROM emp\n```\n\n- KURTOSIS ne peut pas être utilisé en plus des fonctions ou des opérateurs scalaires, uniquement sur un champ. \n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.lastFunction.markdown": "### LAST / LAST_VALUE\nInverse de FIRST/FIRST_VALUE. Renvoie la dernière valeur non nulle (si elle existe) de la colonne d'entrée field_name triée par ordre croissant selon la colonne ordering_field_name. Si la valeur ordering_field_name n'est pas fournie, seule la colonne field_name est utilisée pour le tri. \n\n```\nLAST(\n field_name \n [, ordering_field_name])\n```\n- Nom du champ : champ cible de l'agrégation\n- ordering_field_name : champ facultatif utilisé pour le tri.\n```\nSELECT gender, LAST(first_name) FROM emp GROUP BY gender ORDER BY gender\n```\n- LAST ne peut pas être utilisé dans une clause HAVING.\n- LAST ne peut pas être utilisé avec des colonnes de type texte, sauf si le champ est aussi enregistré comme mot-clé.\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.madFunction.markdown": "### MAD\nMesure la variabilité des valeurs d'entrée dans le champ field_name.\n\n```\nMAD(field_name) \n```\n- champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, AVG(salary) AS avg, MAD(salary) AS mad FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.markdown": "## À propos d'Elasticsearch SQL\n\nUtilisez Elasticsearch SQL pour rechercher et agréger les données dans Elasticsearch. Ce langage de requête fournit une recherche full text avec une syntaxe connue. Voici un exemple de requête :\n \n```\nSELECT * FROM library \nORDER BY page_count DESC LIMIT 5\n```\n \nElasticsearch SQL :\n\n- Fournit un jeu complet d'opérateurs et de fonctions intégrés.\n- Suit la terminologie et les conventions SQL.\n- Accepte une commande par ligne. Une commande est une séquence de jetons terminée par la fin du flux d'entrée\n \n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.maxFunction.markdown": "### MAX\nRetourne la valeur maximale de toutes les valeurs en entrée dans le champ field_name.\n\n```\nMAX(field_name) \n```\n- champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MAX(salary) AS max FROM emp\n```\n\n- MAX sur un champ de type texte ou mot-clé est traduit en FIRST/FIRST_VALUE et ne peut donc pas être utilisé dans la clause HAVING.\n\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.minFunction.markdown": "### MIN\nRetourne la valeur minimale de toutes les valeurs en entrée dans le champ field_name.\n\n```\nMIN(field_name) \n```\n- champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min FROM emp\n```\n\n- MIN sur un champ de type texte ou mot-clé est traduit en FIRST/FIRST_VALUE et ne peut donc pas être utilisé dans la clause HAVING.\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.moduloOperator.markdown": "### Modulo or remainder(%)\n```\nSELECT 5 % 2 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.multiplyOperator.markdown": "### Multiply (*)\n```\nSELECT 2 * 3 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.negateOperator.markdown": "### Negate (unary -)\n```\nSELECT - 1 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.notOperator.markdown": "### NOT\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE NOT emp_no = 10000 LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.nullNotNull.markdown": "### IS NULL/IS NOT NULL\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no IS NOT NULL AND gender IS NULL\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.nullSafeEquality.markdown": "### Null safe equality:\n```\nSELECT 'elastic' &lt;=> null AS \"equals\"\n\n égal\n---------------\nfaux\n```\n```\nSELECT null &lt;=> null AS \"equals\"\n\n égal\n---------------\nvrai\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.orOperator.markdown": "### OR\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt; 10003 OR emp_no = 10005 ORDER BY emp_no LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.percentileFunction.markdown": "### PERCENTILE\nRetourne le centile n (représenté par le paramètre numeric_exp) des valeurs en entrée dans le champ field_name.\n\n```\nPERCENTILE(\n field_name, \n percentile[, \n method[, \n method_parameter]])\n```\n- field_name : champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n- centile : expression numérique (doit être une constante et ne doit pas être basé sur un champ). Si la valeur est nulle, la fonction renvoie une valeur nulle.\n- method : chaîne littérale facultative pour l'algorithme de centile. Valeurs possibles : tdigest ou hdr. La valeur par défaut est tdigest.\n- method_parameter : numérique littéral facultatif qui configure l'algorithme de centile. Configure la compression pour tdigest ou number_of_significant_value_digits pour hdr. La valeur par défaut est la même que celle de l'algorithme de sauvegarde.\n\n```\nSELECT\n languages,\n PERCENTILE(salary, 97.3, 'tdigest', 100.0) AS \"97.3_TDigest\",\n PERCENTILE(salary, 97.3, 'hdr', 3) AS \"97.3_HDR\"\nFROM emp\nGROUP BY languages\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.percentileRankFunction.markdown": "### PERCENTILE_RANK\nRetourne le rang centile n (représenté par le paramètre numeric_exp) des valeurs en entrée dans le champ field_name.\n\n```\nPERCENTILE_RANK(\n field_name, \n value[, \n method[, \n method_parameter]]) \n```\n- field_name : champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n- centile : expression numérique (doit être une constante et ne doit pas être basé sur un champ). Si la valeur est nulle, la fonction renvoie une valeur nulle.\n- method : chaîne littérale facultative pour l'algorithme de centile. Valeurs possibles : tdigest ou hdr. La valeur par défaut est tdigest.\n- method_parameter : numérique littéral facultatif qui configure l'algorithme de centile. Configure la compression pour tdigest ou number_of_significant_value_digits pour hdr. La valeur par défaut est la même que celle de l'algorithme de sauvegarde.\n\n```\nSELECT\n languages,\n ROUND(PERCENTILE_RANK(salary, 65000, 'tdigest', 100.0), 2) AS \"rank_TDigest\",\n ROUND(PERCENTILE_RANK(salary, 65000, 'hdr', 3), 2) AS \"rank_HDR\"\nFROM emp\nGROUP BY languages\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.skewnessFunction.markdown": "### SKEWNESS\nQuantifier la distribution asymétrique des valeurs en entrée dans le champ field_name.\n\n```\nSKEWNESS(field_name) \n```\n- field_name : champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, SKEWNESS(salary) AS s FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.stsdevpopFunction.markdown": "### STDDEV_POP\nRetourne l'écart type de population des valeurs en entrée dans le champ field_name.\n\n```\nSTDDEV_POP(field_name) \n```\n- field_name : champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, STDDEV_POP(salary) AS stddev FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.stsdevsampFunction.markdown": "### STDDEV_SAMP\nRetourne l'écart type de l'échantillon des valeurs en entrée dans le champ field_name.\n\n```\nSTDDEV_SAMP(field_name) \n```\n- field_name : champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, STDDEV_SAMP(salary) AS stddev FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.subtractOperator.markdown": "### Subtract (infix -)\n```\nSELECT 1 - 1 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.sumFunction.markdown": "### SUM\nRetourne la somme des valeurs en entrée dans le champ field_name.\n\n```\nSUM(field_name) \n```\n- champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT SUM(salary) AS sum FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.sumofsquaresFunction.markdown": "### SUM_OF_SQUARES\nRetourne la somme des carrés des valeurs en entrée dans le champ field_name.\n\n```\nSUM_OF_SQUARES(field_name) \n```\n- field_name : champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, SUM_OF_SQUARES(salary) AS sumsq\n FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.varpopFunction.markdown": "### VAR_POP\nRetourne la variance de population des valeurs en entrée dans le champ field_name.\n\n```\nVAR_POP(field_name) \n```\n- field_name : champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, VAR_POP(salary) AS varpop FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.varsampFunction.markdown": "### VAR_SAMP\nRetourne la variance de l'échantillon de valeurs en entrée dans le champ field_name.\n\n```\nVAR_SAMP(field_name) \n```\n- field_name : champ numérique. Si ce champ contient uniquement des valeurs nulles, la fonction renvoie zéro. Sinon, la fonction ignore les valeurs nulles dans ce champ.\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, VAR_SAMP(salary) AS varsamp FROM emp\n```\n ",
"unifiedSearch.filter.applyFilterActionTitle": "Appliquer le filtre à la vue en cours",
"unifiedSearch.filter.applyFilters.popupHeader": "Sélectionner les filtres à appliquer",
"unifiedSearch.filter.applyFiltersPopup.cancelButtonLabel": "Annuler",
@ -5912,58 +5912,58 @@
"unifiedSearch.query.queryBar.searchInputPlaceholderForText": "Filtrer vos données",
"unifiedSearch.query.queryBar.syntaxOptionsTitle": "Options de syntaxe",
"unifiedSearch.query.queryBar.textBasedLanguagesTechPreviewLabel": "Version d'évaluation technique",
"unifiedSearch.query.textBasedLanguagesEditor.aggregateFunctions": "Fonctions agrégées",
"unifiedSearch.query.textBasedLanguagesEditor.aggregateFunctionsDocumentationDescription": "Fonctions permettant de calculer un résultat unique à partir d'un ensemble de valeurs d'entrée. Elasticsearch SQL ne prend en charge les fonctions agrégées que parallèlement au regroupement (implicite ou explicite).",
"unifiedSearch.query.textBasedLanguagesEditor.comparisonOperators": "Opérateurs de comparaison",
"unifiedSearch.query.textBasedLanguagesEditor.comparisonOperatorsDocumentationDescription": "Opérateur booléen pour une comparaison par rapport à une ou plusieurs expressions.",
"unifiedSearch.query.textBasedLanguagesEditor.disableWordWrapLabel": "Désactiver le renvoi à la ligne des mots",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.AddOperator": "Ajouter",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.AndOperator": "AND",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.averageFunction": "Moyenne",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.between": "Entre",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.comparison": "Comparaison",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countAllFunction": "Count (All)",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countDistinctFunction": "Count (Distinct)",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countFunction": "Décompte",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.divideOperator": "Divide",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.equality": "Equality",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.firstFunction": "First / First_value",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.inequality": "Inequality",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.inOperator": "IN",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.kurtosisFunction": "Kurtosis",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.lastFunction": "Last / Last_value",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.madFunction": "Mad",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.maxFunction": "Max.",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.minFunction": "Min.",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.moduloOperator": "Modulo or remainder",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.multiplyOperator": "Multiplier",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.negateOperator": "Negate",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.NotOperator": "NON",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.nullNotNull": "IS NULL et IS NOT NULL",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.nullSafeEquality": "Null safe equality (&lt;=>)",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.OrOperator": "OR",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.percentileFunction": "Centile",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.percentileRankFunction": "Rang centile",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.skewnessFunction": "Skewness",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.stsdevpopFunction": "STDDEV_POP",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.stsdevsampFunction": "STDDEV_SAMP",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.SubtractOperator": "Subtract",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.sumFunction": "Somme",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.sumofsquaresFunction": "Sum of squares",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.varpopFunction": "VAR_POP",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.varsampFunction": "VAR_SAMP",
"unifiedSearch.query.textBasedLanguagesEditor.documentationLabel": "Documentation",
"unifiedSearch.query.textBasedLanguagesEditor.EnableWordWrapLabel": "Activer le renvoi à la ligne des mots",
"unifiedSearch.query.textBasedLanguagesEditor.errorsTitle": "Erreurs",
"unifiedSearch.query.textBasedLanguagesEditor.expandTooltip": "Développer léditeur de requête",
"unifiedSearch.query.textBasedLanguagesEditor.howItWorks": "Fonctionnement",
"unifiedSearch.query.textBasedLanguagesEditor.logicalOperators": "Opérateurs logiques",
"unifiedSearch.query.textBasedLanguagesEditor.logicalOperatorsDocumentationDescription": "Opérateur booléen permettant d'évaluer une ou deux expressions.",
"unifiedSearch.query.textBasedLanguagesEditor.mathOperators": "Opérateurs mathématiques",
"unifiedSearch.query.textBasedLanguagesEditor.mathOperatorsDocumentationDescription": "Effectuer des opérations mathématiques affectant une ou deux valeurs. Le résultat est une valeur de type numérique.",
"unifiedSearch.query.textBasedLanguagesEditor.MinimizeEditor": "Réduire l'éditeur",
"unifiedSearch.query.textBasedLanguagesEditor.minimizeTooltip": "Réduire léditeur de requête",
"unifiedSearch.query.textBasedLanguagesEditor.runQuery": "Exécuter la requête",
"textBasedEditor.query.textBasedLanguagesEditor.aggregateFunctions": "Fonctions agrégées",
"textBasedEditor.query.textBasedLanguagesEditor.aggregateFunctionsDocumentationDescription": "Fonctions permettant de calculer un résultat unique à partir d'un ensemble de valeurs d'entrée. Elasticsearch SQL ne prend en charge les fonctions agrégées que parallèlement au regroupement (implicite ou explicite).",
"textBasedEditor.query.textBasedLanguagesEditor.comparisonOperators": "Opérateurs de comparaison",
"textBasedEditor.query.textBasedLanguagesEditor.comparisonOperatorsDocumentationDescription": "Opérateur booléen pour une comparaison par rapport à une ou plusieurs expressions.",
"textBasedEditor.query.textBasedLanguagesEditor.disableWordWrapLabel": "Désactiver le renvoi à la ligne des mots",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.AddOperator": "Ajouter",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.AndOperator": "AND",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.averageFunction": "Moyenne",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.between": "Entre",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.comparison": "Comparaison",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countAllFunction": "Count (All)",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countDistinctFunction": "Count (Distinct)",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countFunction": "Décompte",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.divideOperator": "Divide",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.equality": "Equality",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.firstFunction": "First / First_value",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.inequality": "Inequality",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.inOperator": "IN",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.kurtosisFunction": "Kurtosis",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.lastFunction": "Last / Last_value",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.madFunction": "Mad",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.maxFunction": "Max.",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.minFunction": "Min.",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.moduloOperator": "Modulo or remainder",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.multiplyOperator": "Multiplier",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.negateOperator": "Negate",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.NotOperator": "NON",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.nullNotNull": "IS NULL et IS NOT NULL",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.nullSafeEquality": "Null safe equality (&lt;=>)",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.OrOperator": "OR",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.percentileFunction": "Centile",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.percentileRankFunction": "Rang centile",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.skewnessFunction": "Skewness",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.stsdevpopFunction": "STDDEV_POP",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.stsdevsampFunction": "STDDEV_SAMP",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.SubtractOperator": "Subtract",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.sumFunction": "Somme",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.sumofsquaresFunction": "Sum of squares",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.varpopFunction": "VAR_POP",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.varsampFunction": "VAR_SAMP",
"textBasedEditor.query.textBasedLanguagesEditor.documentationLabel": "Documentation",
"textBasedEditor.query.textBasedLanguagesEditor.EnableWordWrapLabel": "Activer le renvoi à la ligne des mots",
"textBasedEditor.query.textBasedLanguagesEditor.errorsTitle": "Erreurs",
"textBasedEditor.query.textBasedLanguagesEditor.expandTooltip": "Développer léditeur de requête",
"textBasedEditor.query.textBasedLanguagesEditor.howItWorks": "Fonctionnement",
"textBasedEditor.query.textBasedLanguagesEditor.logicalOperators": "Opérateurs logiques",
"textBasedEditor.query.textBasedLanguagesEditor.logicalOperatorsDocumentationDescription": "Opérateur booléen permettant d'évaluer une ou deux expressions.",
"textBasedEditor.query.textBasedLanguagesEditor.mathOperators": "Opérateurs mathématiques",
"textBasedEditor.query.textBasedLanguagesEditor.mathOperatorsDocumentationDescription": "Effectuer des opérations mathématiques affectant une ou deux valeurs. Le résultat est une valeur de type numérique.",
"textBasedEditor.query.textBasedLanguagesEditor.MinimizeEditor": "Réduire l'éditeur",
"textBasedEditor.query.textBasedLanguagesEditor.minimizeTooltip": "Réduire léditeur de requête",
"textBasedEditor.query.textBasedLanguagesEditor.runQuery": "Exécuter la requête",
"unifiedSearch.queryBarTopRow.submitButton.refresh": "Actualiser la requête",
"unifiedSearch.queryBarTopRow.submitButton.run": "Exécuter la requête",
"unifiedSearch.queryBarTopRow.submitButton.update": "Nécessite une mise à jour",

View file

@ -5749,48 +5749,48 @@
"unifiedSearch.query.queryBar.KQLNestedQuerySyntaxInfoText": "ネストされたフィールドをクエリされているようです。ネストされたクエリに対しては、ご希望の結果により異なる方法でKQL構文を構築することができます。{link}で詳細をご覧ください。",
"unifiedSearch.query.queryBar.searchInputAriaLabel": "{pageType}ページの検索とフィルタリングを行うには入力を開始してください",
"unifiedSearch.query.queryBar.searchInputPlaceholder": "{language}構文を使用してデータをフィルタリング",
"unifiedSearch.query.textBasedLanguagesEditor.errorCount": "{count} {count, plural, other {エラー}}",
"unifiedSearch.query.textBasedLanguagesEditor.lineCount": "{count} {count, plural, other {行}}",
"unifiedSearch.query.textBasedLanguagesEditor.lineNumber": "行{lineNumber}",
"textBasedEditor.query.textBasedLanguagesEditor.errorCount": "{count} {count, plural, other {エラー}}",
"textBasedEditor.query.textBasedLanguagesEditor.lineCount": "{count} {count, plural, other {行}}",
"textBasedEditor.query.textBasedLanguagesEditor.lineNumber": "行{lineNumber}",
"unifiedSearch.search.searchBar.savedQueryPopoverConfirmDeletionTitle": "\"{savedQueryName}\"を削除しますか?",
"unifiedSearch.search.searchBar.savedQueryPopoverSaveChangesButtonAriaLabel": "{title}への変更を保存",
"unifiedSearch.search.unableToGetSavedQueryToastTitle": "クエリ\"{savedQueryId}\"を読み込めません",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.addOperator.markdown": "### 加算(+\n```\nSELECT 1 + 1 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.andOperator.markdown": "### AND\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no > 10000 AND emp_no &lt; 10005 ORDER BY emp_no LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.averageFunction.markdown": "### AVG\n入力値の平均算術平均が返されます。\n```\nAVG(numeric_field)\n```\n- 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n```\nSELECT AVG(salary) AS avg FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.between.markdown": "### Between\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no BETWEEN 9990 AND 10003 ORDER BY emp_no\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.comparison.markdown": "### 比較(&lt;、&lt;=、>、>=\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt; 10003 ORDER BY emp_no LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countAllFunction.markdown": "### Count (All)\nすべてのヌル以外の入力値の合計数カウントが返されます。COUNT(<field_name>) and COUNT(ALL <field_name>) are equivalent.\n\n```\nCOUNT(ALL field_name) \n```\n- フィールド名。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n```\nSELECT COUNT(ALL last_name) AS count_all, COUNT(DISTINCT last_name) count_distinct FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countDistinctFunction.markdown": "### Count (Distinct)\n入力値の重複しないヌル以外の値の合計数が返されます。\n\n```\nCOUNT(DISTINCT field_name)\n```\n- 入力:フィールド名。\n- 出力:数値。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n```\nSELECT COUNT(DISTINCT hire_date) unique_hires, COUNT(hire_date) AS hires FROM emp\n\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countFunction.markdown": "### Count\n入力値の合計数カウントが返されます。\n\n\n```\nCOUNT(式)\n```\n- 式。フィールド名、ワイルドカード(*、または任意の数値。COUNT(*)またはCOUNT(<literal>)の場合、ヌルや不足している値を含むすべての値が考慮されます。COUNT(<field_name>)の場合、ヌル値は考慮されません。\n```\nSELECT COUNT(*) AS count FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.divideOperator.markdown": "### 除算(/\n```\nSELECT 6 / 3 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.equality.markdown": "### 等号(=\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no = 10000 LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.firstFunction.markdown": "### FIRST / FIRST_VALUE\nfield_name入力列の最初のヌル以外の値存在する場合が、ordering_field_name列でソートされて返されます。ordering_field_nameが指定されていない場合は、field_name列のみがソートで使用されます。\n\n```\nFIRST(\n field_name \n [, ordering_field_name])\n```\n- フィールド名:集計の対象フィールド\n- ordering_field_name並べ替えで使用される任意のフィールド。\n\n```\nSELECT gender, FIRST(first_name, birth_date) FROM emp GROUP BY gender ORDER BY gender\n```\n\n- FIRSTはHAVING句で使用できません。\n- フィールドがキーワードとして保存されていない場合、FIRSTはテキスト型の列で使用できません。\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.inequality.markdown": "### 不等号(&lt;>または!=\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt;> 10000 ORDER BY emp_no LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.inOperator.markdown": "### IN (<value1>, <value2>, ...)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no IN (10000, 10001, 10002, 999) ORDER BY emp_no LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.kurtosisFunction.markdown": "### KURTOSIS\nfield_nameフィールドの入力値の分布の形状を定量化します。\n\n```\nKURTOSIS(field_name) \n```\n- 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, KURTOSIS(salary) AS k FROM emp\n```\n\n- KURTOSISは、スカラー関数または演算子に対して使用できません。直接フィールドに対してのみ使用できます。 \n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.lastFunction.markdown": "### LAST / LAST_VALUE\nFIRST/FIRST_VALUEの反転です。field_name入力列の最後のヌル以外の値存在する場合が、ordering_field_name列で降順にソートされて返されます。ordering_field_nameが指定されていない場合は、field_name列のみがソートで使用されます。 \n\n```\nLAST(\n field_name \n [, ordering_field_name])\n```\n- フィールド名:集計の対象フィールド\n- ordering_field_name並べ替えで使用される任意のフィールド。\n```\nSELECT gender, LAST(first_name) FROM emp GROUP BY gender ORDER BY gender\n```\n- LASTはHAVING句で使用できません。\n- フィールドがキーワードとして保存されていない場合、LASTはテキスト型の列で使用できません。\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.madFunction.markdown": "### MAD\nfield_nameフィールドの入力値の変化を測定します。\n\n```\nMAD(field_name) \n```\n- 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, AVG(salary) AS avg, MAD(salary) AS mad FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.markdown": "## Elasticsearch SQLについてさらに詳しく\n\nElasticsearch SQLを使用すると、Elasticsearch内部でデータの検索と集計ができます。このクエリ言語では、使い慣れた構文で全文検索が可能です。クエリの例は次のとおりです。\n \n```\nSELECT * FROM library \nORDER BY page_count DESC LIMIT 5\n```\n \nElasticsearch SQL | \n\n- 演算子と関数の包括的なセットが組み込まれています。\n- SQLの用語と規則に従います。\n- 各行に1つのコマンドを入力できます。コマンドは、入力ストリームの最後に終了する一連の文字です。\n \n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.maxFunction.markdown": "### MAX\nfield_nameフィールドの入力値の最大値が返されます。\n\n```\nMAX(field_name) \n```\n- 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MAX(salary) AS max FROM emp\n```\n\nテキスト型やキーワード型のフィールドに対するMAXはFIRST/FIRST_VALUEに変換されるため、HAVING句では使用できません。\n\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.minFunction.markdown": "### MIN\nfield_nameフィールドの入力値の最小値が返されます。\n\n```\nMIN(field_name) \n```\n- 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min FROM emp\n```\n\nテキスト型やキーワード型のフィールドに対するINはFIRST/FIRST_VALUEに変換されるため、HAVING句では使用できません。\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.moduloOperator.markdown": "### Moduloまたは剰余%\n```\nSELECT 5 % 2 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.multiplyOperator.markdown": "### 乗算(*\n```\nSELECT 2 * 3 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.negateOperator.markdown": "### 否定(単項-\n```\nSELECT - 1 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.notOperator.markdown": "### NOT\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE NOT emp_no = 10000 LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.nullNotNull.markdown": "### IS NULL/IS NOT NULL\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no IS NOT NULL AND gender IS NULL\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.nullSafeEquality.markdown": "### Null宇宙船演算子\n```\nSELECT 'elastic' &lt;=> null AS \"equals\"\n\n 一致する\n---------------\nfalse\n```\n```\nSELECT null &lt;=> null AS \"equals\"\n\n 一致する\n---------------\ntrue\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.orOperator.markdown": "### OR\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt; 10003 OR emp_no = 10005 ORDER BY emp_no LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.percentileFunction.markdown": "### PERCENTILE\nfield_nameフィールドの入力値のnumeric_expパラメーターで表現された第nパーセンタイルが返されます。\n\n```\nPERCENTILE(\n field_name, \n percentile[, \n method[, \n method_parameter]])\n```\n- field_name : 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n- percentile : 数式(フィールドに基づくのではなく、定数でなければなりません)。ヌルの場合、ヌルが返されます。\n- method : パーセンタイルアルゴリズムの任意の文字列リテラル。使用可能な値tdigestまたはhdr。デフォルトはtdigestです。\n- method_parameterパーセンタイルアルゴリズムを構成する任意の数値リテラル。tdigestの圧縮またはhdrのnumber_of_significant_value_digitsを構成します。デフォルトは、基本のアルゴリズムと同じです。\n\n```\nSELECT\n languages,\n PERCENTILE(salary, 97.3, 'tdigest', 100.0) AS \"97.3_TDigest\",\n PERCENTILE(salary, 97.3, 'hdr', 3) AS \"97.3_HDR\"\nFROM emp\nGROUP BY languages\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.percentileRankFunction.markdown": "### PERCENTILE_RANK\nfield_nameフィールドの入力値のnumeric_expパラメーターで表現された第nパーセンタイルランクが返されます。\n\n```\nPERCENTILE_RANK(\n field_name, \n value[, \n method[, \n method_parameter]]) \n```\n- field_name : 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n- percentile : 数式(フィールドに基づくのではなく、定数でなければなりません)。ヌルの場合、ヌルが返されます。\n- method : パーセンタイルアルゴリズムの任意の文字列リテラル。使用可能な値tdigestまたはhdr。デフォルトはtdigestです。\n- method_parameterパーセンタイルアルゴリズムを構成する任意の数値リテラル。tdigestの圧縮またはhdrのnumber_of_significant_value_digitsを構成します。デフォルトは、基本のアルゴリズムと同じです。\n\n```\nSELECT\n languages,\n ROUND(PERCENTILE_RANK(salary, 65000, 'tdigest', 100.0), 2) AS \"rank_TDigest\",\n ROUND(PERCENTILE_RANK(salary, 65000, 'hdr', 3), 2) AS \"rank_HDR\"\nFROM emp\nGROUP BY languages\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.skewnessFunction.markdown": "### SKEWNESS\nfield_nameフィールドの入力値の非対称分布を定量化します。\n\n```\nSKEWNESS(field_name) \n```\n- field_name : 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, SKEWNESS(salary) AS s FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.stsdevpopFunction.markdown": "### STDDEV_POP\nfield_nameフィールドの入力値の母標準偏差が返されます。\n\n```\nSTDDEV_POP(field_name) \n```\n- field_name : 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, STDDEV_POP(salary) AS stddev FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.stsdevsampFunction.markdown": "### STDDEV_SAMP\nfield_nameフィールドの入力値の標本標準偏差が返されます。\n\n```\nSTDDEV_SAMP(field_name) \n```\n- field_name : 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, STDDEV_SAMP(salary) AS stddev FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.subtractOperator.markdown": "### 減算infix -\n```\nSELECT 1 - 1 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.sumFunction.markdown": "### SUM\nfield_nameフィールドの入力値の合計が返されます。\n\n```\nSUM(field_name) \n```\n- 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT SUM(salary) AS sum FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.sumofsquaresFunction.markdown": "### SUM_OF_SQUARES\nfield_nameフィールドの入力値の平方根の合計が返されます。\n\n```\nSUM_OF_SQUARES(field_name) \n```\n- field_name : 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, SUM_OF_SQUARES(salary) AS sumsq\n FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.varpopFunction.markdown": "### VAR_POP\nfield_nameフィールドの入力値の母分散が返されます。\n\n```\nVAR_POP(field_name) \n```\n- field_name : 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, VAR_POP(salary) AS varpop FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.varsampFunction.markdown": "### VAR_SAMP\nfield_nameフィールドの入力値の標本分散が返されます。\n\n```\nVAR_SAMP(field_name) \n```\n- field_name : 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, VAR_SAMP(salary) AS varsamp FROM emp\n```\n ",
"unifiedSearch.search.unableToGetSavedQueryToastTitle": "保存したクエリ{savedQueryId}を読み込めません",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.addOperator.markdown": "### 加算(+\n```\nSELECT 1 + 1 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.andOperator.markdown": "### AND\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no > 10000 AND emp_no &lt; 10005 ORDER BY emp_no LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.averageFunction.markdown": "### AVG\n入力値の平均算術平均が返されます。\n```\nAVG(numeric_field)\n```\n- 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n```\nSELECT AVG(salary) AS avg FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.between.markdown": "### Between\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no BETWEEN 9990 AND 10003 ORDER BY emp_no\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.comparison.markdown": "### 比較(&lt;、&lt;=、>、>=\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt; 10003 ORDER BY emp_no LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countAllFunction.markdown": "### Count (All)\nすべてのヌル以外の入力値の合計数カウントが返されます。COUNT(<field_name>) and COUNT(ALL <field_name>) are equivalent.\n\n```\nCOUNT(ALL field_name) \n```\n- フィールド名。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n```\nSELECT COUNT(ALL last_name) AS count_all, COUNT(DISTINCT last_name) count_distinct FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countDistinctFunction.markdown": "### Count (Distinct)\n入力値の重複しないヌル以外の値の合計数が返されます。\n\n```\nCOUNT(DISTINCT field_name)\n```\n- 入力:フィールド名。\n- 出力:数値。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n```\nSELECT COUNT(DISTINCT hire_date) unique_hires, COUNT(hire_date) AS hires FROM emp\n\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countFunction.markdown": "### Count\n入力値の合計数カウントが返されます。\n\n\n```\nCOUNT(式)\n```\n- 式。フィールド名、ワイルドカード(*、または任意の数値。COUNT(*)またはCOUNT(<literal>)の場合、ヌルや不足している値を含むすべての値が考慮されます。COUNT(<field_name>)の場合、ヌル値は考慮されません。\n```\nSELECT COUNT(*) AS count FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.divideOperator.markdown": "### 除算(/\n```\nSELECT 6 / 3 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.equality.markdown": "### 等号(=\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no = 10000 LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.firstFunction.markdown": "### FIRST / FIRST_VALUE\nfield_name入力列の最初のヌル以外の値存在する場合が、ordering_field_name列でソートされて返されます。ordering_field_nameが指定されていない場合は、field_name列のみがソートで使用されます。\n\n```\nFIRST(\n field_name \n [, ordering_field_name])\n```\n- フィールド名:集計の対象フィールド\n- ordering_field_name並べ替えで使用される任意のフィールド。\n\n```\nSELECT gender, FIRST(first_name, birth_date) FROM emp GROUP BY gender ORDER BY gender\n```\n\n- FIRSTはHAVING句で使用できません。\n- フィールドがキーワードとして保存されていない場合、FIRSTはテキスト型の列で使用できません。\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.inequality.markdown": "### 不等号(&lt;>または!=\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt;> 10000 ORDER BY emp_no LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.inOperator.markdown": "### IN (<value1>, <value2>, ...)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no IN (10000, 10001, 10002, 999) ORDER BY emp_no LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.kurtosisFunction.markdown": "### KURTOSIS\nfield_nameフィールドの入力値の分布の形状を定量化します。\n\n```\nKURTOSIS(field_name) \n```\n- 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, KURTOSIS(salary) AS k FROM emp\n```\n\n- KURTOSISは、スカラー関数または演算子に対して使用できません。直接フィールドに対してのみ使用できます。 \n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.lastFunction.markdown": "### LAST / LAST_VALUE\nFIRST/FIRST_VALUEの反転です。field_name入力列の最後のヌル以外の値存在する場合が、ordering_field_name列で降順にソートされて返されます。ordering_field_nameが指定されていない場合は、field_name列のみがソートで使用されます。 \n\n```\nLAST(\n field_name \n [, ordering_field_name])\n```\n- フィールド名:集計の対象フィールド\n- ordering_field_name並べ替えで使用される任意のフィールド。\n```\nSELECT gender, LAST(first_name) FROM emp GROUP BY gender ORDER BY gender\n```\n- LASTはHAVING句で使用できません。\n- フィールドがキーワードとして保存されていない場合、LASTはテキスト型の列で使用できません。\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.madFunction.markdown": "### MAD\nfield_nameフィールドの入力値の変化を測定します。\n\n```\nMAD(field_name) \n```\n- 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, AVG(salary) AS avg, MAD(salary) AS mad FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.markdown": "## Elasticsearch SQLについてさらに詳しく\n\nElasticsearch SQLを使用すると、Elasticsearch内部でデータの検索と集計ができます。このクエリ言語では、使い慣れた構文で全文検索が可能です。クエリの例は次のとおりです。\n \n```\nSELECT * FROM library \nORDER BY page_count DESC LIMIT 5\n```\n \nElasticsearch SQL | \n\n- 演算子と関数の包括的なセットが組み込まれています。\n- SQLの用語と規則に従います。\n- 各行に1つのコマンドを入力できます。コマンドは、入力ストリームの最後に終了する一連の文字です。\n \n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.maxFunction.markdown": "### MAX\nfield_nameフィールドの入力値の最大値が返されます。\n\n```\nMAX(field_name) \n```\n- 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MAX(salary) AS max FROM emp\n```\n\nテキスト型やキーワード型のフィールドに対するMAXはFIRST/FIRST_VALUEに変換されるため、HAVING句では使用できません。\n\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.minFunction.markdown": "### MIN\nfield_nameフィールドの入力値の最小値が返されます。\n\n```\nMIN(field_name) \n```\n- 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min FROM emp\n```\n\nテキスト型やキーワード型のフィールドに対するINはFIRST/FIRST_VALUEに変換されるため、HAVING句では使用できません。\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.moduloOperator.markdown": "### Moduloまたは剰余%\n```\nSELECT 5 % 2 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.multiplyOperator.markdown": "### 乗算(*\n```\nSELECT 2 * 3 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.negateOperator.markdown": "### 否定(単項-\n```\nSELECT - 1 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.notOperator.markdown": "### NOT\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE NOT emp_no = 10000 LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.nullNotNull.markdown": "### IS NULL/IS NOT NULL\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no IS NOT NULL AND gender IS NULL\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.nullSafeEquality.markdown": "### Null宇宙船演算子\n```\nSELECT 'elastic' &lt;=> null AS \"equals\"\n\n 一致する\n---------------\nfalse\n```\n```\nSELECT null &lt;=> null AS \"equals\"\n\n 一致する\n---------------\ntrue\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.orOperator.markdown": "### OR\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt; 10003 OR emp_no = 10005 ORDER BY emp_no LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.percentileFunction.markdown": "### PERCENTILE\nfield_nameフィールドの入力値のnumeric_expパラメーターで表現された第nパーセンタイルが返されます。\n\n```\nPERCENTILE(\n field_name, \n percentile[, \n method[, \n method_parameter]])\n```\n- field_name : 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n- percentile : 数式(フィールドに基づくのではなく、定数でなければなりません)。ヌルの場合、ヌルが返されます。\n- method : パーセンタイルアルゴリズムの任意の文字列リテラル。使用可能な値tdigestまたはhdr。デフォルトはtdigestです。\n- method_parameterパーセンタイルアルゴリズムを構成する任意の数値リテラル。tdigestの圧縮またはhdrのnumber_of_significant_value_digitsを構成します。デフォルトは、基本のアルゴリズムと同じです。\n\n```\nSELECT\n languages,\n PERCENTILE(salary, 97.3, 'tdigest', 100.0) AS \"97.3_TDigest\",\n PERCENTILE(salary, 97.3, 'hdr', 3) AS \"97.3_HDR\"\nFROM emp\nGROUP BY languages\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.percentileRankFunction.markdown": "### PERCENTILE_RANK\nfield_nameフィールドの入力値のnumeric_expパラメーターで表現された第nパーセンタイルランクが返されます。\n\n```\nPERCENTILE_RANK(\n field_name, \n value[, \n method[, \n method_parameter]]) \n```\n- field_name : 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n- percentile : 数式(フィールドに基づくのではなく、定数でなければなりません)。ヌルの場合、ヌルが返されます。\n- method : パーセンタイルアルゴリズムの任意の文字列リテラル。使用可能な値tdigestまたはhdr。デフォルトはtdigestです。\n- method_parameterパーセンタイルアルゴリズムを構成する任意の数値リテラル。tdigestの圧縮またはhdrのnumber_of_significant_value_digitsを構成します。デフォルトは、基本のアルゴリズムと同じです。\n\n```\nSELECT\n languages,\n ROUND(PERCENTILE_RANK(salary, 65000, 'tdigest', 100.0), 2) AS \"rank_TDigest\",\n ROUND(PERCENTILE_RANK(salary, 65000, 'hdr', 3), 2) AS \"rank_HDR\"\nFROM emp\nGROUP BY languages\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.skewnessFunction.markdown": "### SKEWNESS\nfield_nameフィールドの入力値の非対称分布を定量化します。\n\n```\nSKEWNESS(field_name) \n```\n- field_name : 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, SKEWNESS(salary) AS s FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.stsdevpopFunction.markdown": "### STDDEV_POP\nfield_nameフィールドの入力値の母標準偏差が返されます。\n\n```\nSTDDEV_POP(field_name) \n```\n- field_name : 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, STDDEV_POP(salary) AS stddev FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.stsdevsampFunction.markdown": "### STDDEV_SAMP\nfield_nameフィールドの入力値の標本標準偏差が返されます。\n\n```\nSTDDEV_SAMP(field_name) \n```\n- field_name : 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, STDDEV_SAMP(salary) AS stddev FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.subtractOperator.markdown": "### 減算infix -\n```\nSELECT 1 - 1 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.sumFunction.markdown": "### SUM\nfield_nameフィールドの入力値の合計が返されます。\n\n```\nSUM(field_name) \n```\n- 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT SUM(salary) AS sum FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.sumofsquaresFunction.markdown": "### SUM_OF_SQUARES\nfield_nameフィールドの入力値の平方根の合計が返されます。\n\n```\nSUM_OF_SQUARES(field_name) \n```\n- field_name : 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, SUM_OF_SQUARES(salary) AS sumsq\n FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.varpopFunction.markdown": "### VAR_POP\nfield_nameフィールドの入力値の母分散が返されます。\n\n```\nVAR_POP(field_name) \n```\n- field_name : 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, VAR_POP(salary) AS varpop FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.varsampFunction.markdown": "### VAR_SAMP\nfield_nameフィールドの入力値の標本分散が返されます。\n\n```\nVAR_SAMP(field_name) \n```\n- field_name : 数値フィールド。このフィールドにヌル値のみが入力されている場合、関数によってヌルが返されます。そうでない場合は、このフィールドのヌル値は無視されます。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, VAR_SAMP(salary) AS varsamp FROM emp\n```\n ",
"unifiedSearch.filter.applyFilterActionTitle": "現在のビューにフィルターを適用",
"unifiedSearch.filter.applyFilters.popupHeader": "適用するフィルターの選択",
"unifiedSearch.filter.applyFiltersPopup.cancelButtonLabel": "キャンセル",
@ -5913,58 +5913,58 @@
"unifiedSearch.query.queryBar.searchInputPlaceholderForText": "データのフィルタリング",
"unifiedSearch.query.queryBar.syntaxOptionsTitle": "構文オプション",
"unifiedSearch.query.queryBar.textBasedLanguagesTechPreviewLabel": "テクニカルプレビュー",
"unifiedSearch.query.textBasedLanguagesEditor.aggregateFunctions": "集計関数",
"unifiedSearch.query.textBasedLanguagesEditor.aggregateFunctionsDocumentationDescription": "複数の入力値のセットから単一の結果を計算するための関数。Elasticsearch SQLでは、集計関数は明示的または暗黙的なグループ化を行った場合にのみ使用できます。",
"unifiedSearch.query.textBasedLanguagesEditor.comparisonOperators": "比較演算子",
"unifiedSearch.query.textBasedLanguagesEditor.comparisonOperatorsDocumentationDescription": "1つ以上の式に対して比較を行うためのブール演算子。",
"unifiedSearch.query.textBasedLanguagesEditor.disableWordWrapLabel": "単語の折り返しを無効にする",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.AddOperator": "追加",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.AndOperator": "AND",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.averageFunction": "平均",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.between": "Between",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.comparison": "比較",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countAllFunction": "Count (All)",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countDistinctFunction": "Count (Distinct)",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countFunction": "カウント",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.divideOperator": "除算",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.equality": "等号",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.firstFunction": "First / First_value",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.inequality": "不等号",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.inOperator": "IN",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.kurtosisFunction": "Kurtosis",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.lastFunction": "Last / Last_value",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.madFunction": "Mad",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.maxFunction": "最高",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.minFunction": "最低",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.moduloOperator": "Moduloまたは剰余",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.multiplyOperator": "乗算",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.negateOperator": "否定",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.NotOperator": "NOT",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.nullNotNull": "IS NULLおよびIS NOT NULL",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.nullSafeEquality": "Null宇宙船演算子&lt;=>",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.OrOperator": "OR",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.percentileFunction": "パーセンタイル",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.percentileRankFunction": "パーセンタイル順位",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.skewnessFunction": "Skewness",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.stsdevpopFunction": "STDDEV_POP",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.stsdevsampFunction": "STDDEV_SAMP",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.SubtractOperator": "減算",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.sumFunction": "合計",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.sumofsquaresFunction": "平方和",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.varpopFunction": "VAR_POP",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.varsampFunction": "VAR_SAMP",
"unifiedSearch.query.textBasedLanguagesEditor.documentationLabel": "ドキュメント",
"unifiedSearch.query.textBasedLanguagesEditor.EnableWordWrapLabel": "単語の折り返しを有効にする",
"unifiedSearch.query.textBasedLanguagesEditor.errorsTitle": "エラー",
"unifiedSearch.query.textBasedLanguagesEditor.expandTooltip": "クエリエディターを展開",
"unifiedSearch.query.textBasedLanguagesEditor.howItWorks": "仕組み",
"unifiedSearch.query.textBasedLanguagesEditor.logicalOperators": "論理演算子",
"unifiedSearch.query.textBasedLanguagesEditor.logicalOperatorsDocumentationDescription": "1つまたは2つの式を評価するためのブール演算子。",
"unifiedSearch.query.textBasedLanguagesEditor.mathOperators": "数学演算子",
"unifiedSearch.query.textBasedLanguagesEditor.mathOperatorsDocumentationDescription": "1つまたは2つの値に影響する数学演算を実行します。結果は数値型の値です。",
"unifiedSearch.query.textBasedLanguagesEditor.MinimizeEditor": "エディターを最小化",
"unifiedSearch.query.textBasedLanguagesEditor.minimizeTooltip": "クエリエディターを縮小",
"unifiedSearch.query.textBasedLanguagesEditor.runQuery": "クエリを実行",
"textBasedEditor.query.textBasedLanguagesEditor.aggregateFunctions": "集計関数",
"textBasedEditor.query.textBasedLanguagesEditor.aggregateFunctionsDocumentationDescription": "複数の入力値のセットから単一の結果を計算するための関数。Elasticsearch SQLでは、集計関数は明示的または暗黙的なグループ化を行った場合にのみ使用できます。",
"textBasedEditor.query.textBasedLanguagesEditor.comparisonOperators": "比較演算子",
"textBasedEditor.query.textBasedLanguagesEditor.comparisonOperatorsDocumentationDescription": "1つ以上の式に対して比較を行うためのブール演算子。",
"textBasedEditor.query.textBasedLanguagesEditor.disableWordWrapLabel": "単語の折り返しを無効にする",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.AddOperator": "追加",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.AndOperator": "AND",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.averageFunction": "平均",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.between": "Between",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.comparison": "比較",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countAllFunction": "Count (All)",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countDistinctFunction": "Count (Distinct)",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countFunction": "カウント",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.divideOperator": "除算",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.equality": "等号",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.firstFunction": "First / First_value",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.inequality": "不等号",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.inOperator": "IN",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.kurtosisFunction": "Kurtosis",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.lastFunction": "Last / Last_value",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.madFunction": "Mad",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.maxFunction": "最高",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.minFunction": "最低",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.moduloOperator": "Moduloまたは剰余",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.multiplyOperator": "乗算",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.negateOperator": "否定",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.NotOperator": "NOT",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.nullNotNull": "IS NULLおよびIS NOT NULL",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.nullSafeEquality": "Null宇宙船演算子&lt;=>",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.OrOperator": "OR",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.percentileFunction": "パーセンタイル",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.percentileRankFunction": "パーセンタイル順位",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.skewnessFunction": "Skewness",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.stsdevpopFunction": "STDDEV_POP",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.stsdevsampFunction": "STDDEV_SAMP",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.SubtractOperator": "減算",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.sumFunction": "合計",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.sumofsquaresFunction": "平方和",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.varpopFunction": "VAR_POP",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.varsampFunction": "VAR_SAMP",
"textBasedEditor.query.textBasedLanguagesEditor.documentationLabel": "ドキュメント",
"textBasedEditor.query.textBasedLanguagesEditor.EnableWordWrapLabel": "単語の折り返しを有効にする",
"textBasedEditor.query.textBasedLanguagesEditor.errorsTitle": "エラー",
"textBasedEditor.query.textBasedLanguagesEditor.expandTooltip": "クエリエディターを展開",
"textBasedEditor.query.textBasedLanguagesEditor.howItWorks": "仕組み",
"textBasedEditor.query.textBasedLanguagesEditor.logicalOperators": "論理演算子",
"textBasedEditor.query.textBasedLanguagesEditor.logicalOperatorsDocumentationDescription": "1つまたは2つの式を評価するためのブール演算子。",
"textBasedEditor.query.textBasedLanguagesEditor.mathOperators": "数学演算子",
"textBasedEditor.query.textBasedLanguagesEditor.mathOperatorsDocumentationDescription": "1つまたは2つの値に影響する数学演算を実行します。結果は数値型の値です。",
"textBasedEditor.query.textBasedLanguagesEditor.MinimizeEditor": "エディターを最小化",
"textBasedEditor.query.textBasedLanguagesEditor.minimizeTooltip": "クエリエディターを縮小",
"textBasedEditor.query.textBasedLanguagesEditor.runQuery": "クエリを実行",
"unifiedSearch.queryBarTopRow.submitButton.refresh": "クエリの更新",
"unifiedSearch.queryBarTopRow.submitButton.run": "クエリを実行",
"unifiedSearch.queryBarTopRow.submitButton.update": "更新が必要です",

View file

@ -5748,48 +5748,48 @@
"unifiedSearch.query.queryBar.KQLNestedQuerySyntaxInfoText": "似乎您正在查询嵌套字段。您可以使用不同的方式构造嵌套查询的 KQL 语法,具体取决于您想要的结果。详细了解我们的 {link}。",
"unifiedSearch.query.queryBar.searchInputAriaLabel": "开始键入内容,以搜索并筛选 {pageType} 页面",
"unifiedSearch.query.queryBar.searchInputPlaceholder": "使用 {language} 语法筛选数据",
"unifiedSearch.query.textBasedLanguagesEditor.errorCount": "{count} 个{count, plural, other {错误}}",
"unifiedSearch.query.textBasedLanguagesEditor.lineCount": "{count} {count, plural, other {行}}",
"unifiedSearch.query.textBasedLanguagesEditor.lineNumber": "第 {lineNumber} 行",
"textBasedEditor.query.textBasedLanguagesEditor.errorCount": "{count} 个{count, plural, other {错误}}",
"textBasedEditor.query.textBasedLanguagesEditor.lineCount": "{count} {count, plural, other {行}}",
"textBasedEditor.query.textBasedLanguagesEditor.lineNumber": "第 {lineNumber} 行",
"unifiedSearch.search.searchBar.savedQueryPopoverConfirmDeletionTitle": "删除“{savedQueryName}”?",
"unifiedSearch.search.searchBar.savedQueryPopoverSaveChangesButtonAriaLabel": "将更改保存到 {title}",
"unifiedSearch.search.unableToGetSavedQueryToastTitle": "无法加载查询 {savedQueryId}",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.addOperator.markdown": "### Add (+)\n```\nSELECT 1 + 1 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.andOperator.markdown": "### AND\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no > 10000 AND emp_no &lt; 10005 ORDER BY emp_no LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.averageFunction.markdown": "### AVG\n返回输入值的算术平均值。\n```\nAVG(numeric_field)\n```\n- 数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n```\nSELECT AVG(salary) AS avg FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.between.markdown": "### Between\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no BETWEEN 9990 AND 10003 ORDER BY emp_no\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.comparison.markdown": "### Comparison (&lt;, &lt;=, >, >=)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt; 10003 ORDER BY emp_no LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countAllFunction.markdown": "### Count (All)\n返回所有非 null 输入值的总数计数。COUNT(<field_name>) 与 COUNT(ALL <field_name>) 等价。\n\n```\nCOUNT(ALL field_name) \n```\n- 字段名称。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n```\nSELECT COUNT(ALL last_name) AS count_all, COUNT(DISTINCT last_name) count_distinct FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countDistinctFunction.markdown": "### Count (Distinct)\n返回输入值中的不同非 null 值的总数。\n\n```\nCOUNT(DISTINCT field_name)\n```\n- 输入:字段名称。\n- 输出:数字值。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n```\nSELECT COUNT(DISTINCT hire_date) unique_hires, COUNT(hire_date) AS hires FROM emp\n\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countFunction.markdown": "### Count\n返回输入值的总数计数。\n\n\n```\nCOUNT(expression)\n```\n- 表达式为字段名称、通配符 (*) 或任何数字值。对于 COUNT(*) 或 COUNT(<literal>),将考虑所有值,包括 null 或缺失的值。对于 COUNT(<field_name>),将不考虑 null 值。\n```\nSELECT COUNT(*) AS count FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.divideOperator.markdown": "### Divide (/)\n```\nSELECT 6 / 3 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.equality.markdown": "### Equality (=)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no = 10000 LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.firstFunction.markdown": "### FIRST / FIRST_VALUE\n返回按 ordering_field_name 列排序的 field_name 输入列中的第一个非 null 值(如果存在)。如果未提供 ordering_field_name则仅 field_name 列用于排序。\n\n```\nFIRST(\n field_name \n [, ordering_field_name])\n```\n- 字段名称:用于聚合的目标字段\n- ordering_field_name用于排序的可选字段。\n\n```\nSELECT gender, FIRST(first_name, birth_date) FROM emp GROUP BY gender ORDER BY gender\n```\n\n- FIRST 不能用在 HAVING 子句中。\n- FIRST 不能用于文本类型的列,除非也将该字段另存为关键字。\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.inequality.markdown": "### Inequality (&lt;> or !=)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt;> 10000 ORDER BY emp_no LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.inOperator.markdown": "### IN (<value1>, <value2>, ...)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no IN (10000, 10001, 10002, 999) ORDER BY emp_no LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.kurtosisFunction.markdown": "### KURTOSIS\n量化字段 field_name 中输入值的分布形状。\n\n```\nKURTOSIS(field_name) \n```\n- 数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, KURTOSIS(salary) AS k FROM emp\n```\n\n- KURTOSIS 不能用于标量函数或运算符上面,而只能直接用于字段。 \n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.lastFunction.markdown": "### LAST / LAST_VALUE\n这是 FIRST/FIRST_VALUE 的反向函数。返回按 ordering_field_name 列降序排序的 field_name 输入列中的最后一个非 null 值(如果存在)。如果未提供 ordering_field_name则仅 field_name 列用于排序。 \n\n```\nLAST(\n field_name \n [, ordering_field_name])\n```\n- 字段名称:用于聚合的目标字段\n- ordering_field_name用于排序的可选字段。\n```\nSELECT gender, LAST(first_name) FROM emp GROUP BY gender ORDER BY gender\n```\n- LAST 不能用在 HAVING 子句中。\n- LAST 不能用于文本类型的列,除非也将该字段另存为关键字。\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.madFunction.markdown": "### MAD\n衡量字段 field_name 中输入值的可变性。\n\n```\nMAD(field_name) \n```\n- 数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, AVG(salary) AS avg, MAD(salary) AS mad FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.markdown": "## 关于 Elasticsearch SQL\n\n使用 Elasticsearch SQL 在 Elasticsearch 内部搜索并聚合数据。此查询语言通过熟悉的语法提供了全文本搜索。这里提供了一个查询示例:\n \n```\nSELECT * FROM library \nORDER BY page_count DESC LIMIT 5\n```\n \nElasticsearch SQL\n\n- 提供了一组全面的内置运算符和函数。\n- 遵循 SQL 术语和约定。\n- 每行接受一个命令。命令指通过结束输入流终止的一连串令牌\n \n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.maxFunction.markdown": "### MAX\n返回字段 field_name 中所有输入值的最大值。\n\n```\nMAX(field_name) \n```\n- 数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MAX(salary) AS max FROM emp\n```\n\n- 类型为文本或关键字的字段的 MAX 将转换为 FIRST/FIRST_VALUE因此不能用在 HAVING 子句中。\n\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.minFunction.markdown": "### MIN\n返回字段 field_name 中所有输入值的最小值。\n\n```\nMIN(field_name) \n```\n- 数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min FROM emp\n```\n\n- 类型为文本或关键字的字段的 MIN 将转换为 FIRST/FIRST_VALUE因此不能用在 HAVING 子句中。\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.moduloOperator.markdown": "### Modulo or remainder(%)\n```\nSELECT 5 % 2 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.multiplyOperator.markdown": "### Multiply (*)\n```\nSELECT 2 * 3 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.negateOperator.markdown": "### Negate (unary -)\n```\nSELECT - 1 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.notOperator.markdown": "### NOT\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE NOT emp_no = 10000 LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.nullNotNull.markdown": "### IS NULL/IS NOT NULL\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no IS NOT NULL AND gender IS NULL\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.nullSafeEquality.markdown": "### Null safe equality:\n```\nSELECT 'elastic' &lt;=> null AS \"equals\"\n\n 等于\n---------------\nfalse\n```\n```\nSELECT null &lt;=> null AS \"equals\"\n\n 等于\n---------------\ntrue\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.orOperator.markdown": "### OR\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt; 10003 OR emp_no = 10005 ORDER BY emp_no LIMIT 5\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.percentileFunction.markdown": "### PERCENTILE\n返回字段 field_name 中输入值的第 n 个百分位(用 numeric_exp 参数表示)。\n\n```\nPERCENTILE(\n field_name, \n percentile[, \n method[, \n method_parameter]])\n```\n- field_name数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n- 百分位数:数字表达式(必须为常数并且不得基于字段)。如果为 null该函数将返回 null。\n- 方法百分位数算法的可选字符串文本。可能的值tdigest 或 hdr。默认值为 tdigest。\n- method_parameter配置百分位数算法的可选数字文本。为 tdigest 配置表达式,或为 hdr 配置 number_of_significant_value_digits。默认值与后备算法的默认值相同。\n\n```\n精选\n languages,\n PERCENTILE(salary, 97.3, 'tdigest', 100.0) AS \"97.3_TDigest\",\n PERCENTILE(salary, 97.3, 'hdr', 3) AS \"97.3_HDR\"\nFROM emp\nGROUP BY languages\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.percentileRankFunction.markdown": "### PERCENTILE_RANK\n返回字段 field_name 中输入值的第 n 个百分位等级(用 numeric_exp 参数表示)。\n\n```\nPERCENTILE_RANK(\n field_name, \n value[, \n method[, \n method_parameter]]) \n```\n- field_name数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n- 百分位数:数字表达式(必须为常数并且不得基于字段)。如果为 null该函数将返回 null。\n- 方法百分位数算法的可选字符串文本。可能的值tdigest 或 hdr。默认值为 tdigest。\n- method_parameter配置百分位数算法的可选数字文本。为 tdigest 配置表达式,或为 hdr 配置 number_of_significant_value_digits。默认值与后备算法的默认值相同。\n\n```\n精选\n languages,\n ROUND(PERCENTILE_RANK(salary, 65000, 'tdigest', 100.0), 2) AS \"rank_TDigest\",\n ROUND(PERCENTILE_RANK(salary, 65000, 'hdr', 3), 2) AS \"rank_HDR\"\nFROM emp\nGROUP BY languages\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.skewnessFunction.markdown": "### SKEWNESS\n量化字段 field_name 中输入值的非对称分布。\n\n```\nSKEWNESS(field_name) \n```\n- field_name数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, SKEWNESS(salary) AS s FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.stsdevpopFunction.markdown": "### STDDEV_POP\n返回字段 field_name 中输入值的填充标准偏差。\n\n```\nSTDDEV_POP(field_name) \n```\n- field_name数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, STDDEV_POP(salary) AS stddev FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.stsdevsampFunction.markdown": "### STDDEV_SAMP\n返回字段 field_name 中输入值的样例标准偏差。\n\n```\nSTDDEV_SAMP(field_name) \n```\n- field_name数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, STDDEV_SAMP(salary) AS stddev FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.subtractOperator.markdown": "### Subtract (infix -)\n```\nSELECT 1 - 1 AS x\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.sumFunction.markdown": "### SUM\n返回字段 field_name 中所有输入值的总和。\n\n```\nSUM(field_name) \n```\n- 数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT SUM(salary) AS sum FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.sumofsquaresFunction.markdown": "### SUM_OF_SQUARES\n返回字段 field_name 中输入值的平方和。\n\n```\nSUM_OF_SQUARES(field_name) \n```\n- field_name数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, SUM_OF_SQUARES(salary) AS sumsq\n FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.varpopFunction.markdown": "### VAR_POP\n返回字段 field_name 中输入值的总体方差。\n\n```\nVAR_POP(field_name) \n```\n- field_name数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, VAR_POP(salary) AS varpop FROM emp\n```\n ",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.varsampFunction.markdown": "### VAR_SAMP\n返回字段 field_name 中输入值的样例方差。\n\n```\nVAR_SAMP(field_name) \n```\n- field_name数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, VAR_SAMP(salary) AS varsamp FROM emp\n```\n ",
"unifiedSearch.search.unableToGetSavedQueryToastTitle": "无法加载已保存查询 {savedQueryId}",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.addOperator.markdown": "### Add (+)\n```\nSELECT 1 + 1 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.andOperator.markdown": "### AND\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no > 10000 AND emp_no &lt; 10005 ORDER BY emp_no LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.averageFunction.markdown": "### AVG\n返回输入值的算术平均值。\n```\nAVG(numeric_field)\n```\n- 数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n```\nSELECT AVG(salary) AS avg FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.between.markdown": "### Between\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no BETWEEN 9990 AND 10003 ORDER BY emp_no\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.comparison.markdown": "### Comparison (&lt;, &lt;=, >, >=)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt; 10003 ORDER BY emp_no LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countAllFunction.markdown": "### Count (All)\n返回所有非 null 输入值的总数计数。COUNT(<field_name>) 与 COUNT(ALL <field_name>) 等价。\n\n```\nCOUNT(ALL field_name) \n```\n- 字段名称。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n```\nSELECT COUNT(ALL last_name) AS count_all, COUNT(DISTINCT last_name) count_distinct FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countDistinctFunction.markdown": "### Count (Distinct)\n返回输入值中的不同非 null 值的总数。\n\n```\nCOUNT(DISTINCT field_name)\n```\n- 输入:字段名称。\n- 输出:数字值。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n```\nSELECT COUNT(DISTINCT hire_date) unique_hires, COUNT(hire_date) AS hires FROM emp\n\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countFunction.markdown": "### Count\n返回输入值的总数计数。\n\n\n```\nCOUNT(expression)\n```\n- 表达式为字段名称、通配符 (*) 或任何数字值。对于 COUNT(*) 或 COUNT(<literal>),将考虑所有值,包括 null 或缺失的值。对于 COUNT(<field_name>),将不考虑 null 值。\n```\nSELECT COUNT(*) AS count FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.divideOperator.markdown": "### Divide (/)\n```\nSELECT 6 / 3 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.equality.markdown": "### Equality (=)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no = 10000 LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.firstFunction.markdown": "### FIRST / FIRST_VALUE\n返回按 ordering_field_name 列排序的 field_name 输入列中的第一个非 null 值(如果存在)。如果未提供 ordering_field_name则仅 field_name 列用于排序。\n\n```\nFIRST(\n field_name \n [, ordering_field_name])\n```\n- 字段名称:用于聚合的目标字段\n- ordering_field_name用于排序的可选字段。\n\n```\nSELECT gender, FIRST(first_name, birth_date) FROM emp GROUP BY gender ORDER BY gender\n```\n\n- FIRST 不能用在 HAVING 子句中。\n- FIRST 不能用于文本类型的列,除非也将该字段另存为关键字。\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.inequality.markdown": "### Inequality (&lt;> or !=)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt;> 10000 ORDER BY emp_no LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.inOperator.markdown": "### IN (<value1>, <value2>, ...)\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no IN (10000, 10001, 10002, 999) ORDER BY emp_no LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.kurtosisFunction.markdown": "### KURTOSIS\n量化字段 field_name 中输入值的分布形状。\n\n```\nKURTOSIS(field_name) \n```\n- 数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, KURTOSIS(salary) AS k FROM emp\n```\n\n- KURTOSIS 不能用于标量函数或运算符上面,而只能直接用于字段。 \n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.lastFunction.markdown": "### LAST / LAST_VALUE\n这是 FIRST/FIRST_VALUE 的反向函数。返回按 ordering_field_name 列降序排序的 field_name 输入列中的最后一个非 null 值(如果存在)。如果未提供 ordering_field_name则仅 field_name 列用于排序。 \n\n```\nLAST(\n field_name \n [, ordering_field_name])\n```\n- 字段名称:用于聚合的目标字段\n- ordering_field_name用于排序的可选字段。\n```\nSELECT gender, LAST(first_name) FROM emp GROUP BY gender ORDER BY gender\n```\n- LAST 不能用在 HAVING 子句中。\n- LAST 不能用于文本类型的列,除非也将该字段另存为关键字。\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.madFunction.markdown": "### MAD\n衡量字段 field_name 中输入值的可变性。\n\n```\nMAD(field_name) \n```\n- 数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, AVG(salary) AS avg, MAD(salary) AS mad FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.markdown": "## 关于 Elasticsearch SQL\n\n使用 Elasticsearch SQL 在 Elasticsearch 内部搜索并聚合数据。此查询语言通过熟悉的语法提供了全文本搜索。这里提供了一个查询示例:\n \n```\nSELECT * FROM library \nORDER BY page_count DESC LIMIT 5\n```\n \nElasticsearch SQL\n\n- 提供了一组全面的内置运算符和函数。\n- 遵循 SQL 术语和约定。\n- 每行接受一个命令。命令指通过结束输入流终止的一连串令牌\n \n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.maxFunction.markdown": "### MAX\n返回字段 field_name 中所有输入值的最大值。\n\n```\nMAX(field_name) \n```\n- 数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MAX(salary) AS max FROM emp\n```\n\n- 类型为文本或关键字的字段的 MAX 将转换为 FIRST/FIRST_VALUE因此不能用在 HAVING 子句中。\n\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.minFunction.markdown": "### MIN\n返回字段 field_name 中所有输入值的最小值。\n\n```\nMIN(field_name) \n```\n- 数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min FROM emp\n```\n\n- 类型为文本或关键字的字段的 MIN 将转换为 FIRST/FIRST_VALUE因此不能用在 HAVING 子句中。\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.moduloOperator.markdown": "### Modulo or remainder(%)\n```\nSELECT 5 % 2 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.multiplyOperator.markdown": "### Multiply (*)\n```\nSELECT 2 * 3 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.negateOperator.markdown": "### Negate (unary -)\n```\nSELECT - 1 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.notOperator.markdown": "### NOT\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE NOT emp_no = 10000 LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.nullNotNull.markdown": "### IS NULL/IS NOT NULL\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no IS NOT NULL AND gender IS NULL\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.nullSafeEquality.markdown": "### Null safe equality:\n```\nSELECT 'elastic' &lt;=> null AS \"equals\"\n\n 等于\n---------------\nfalse\n```\n```\nSELECT null &lt;=> null AS \"equals\"\n\n 等于\n---------------\ntrue\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.orOperator.markdown": "### OR\n```\nSELECT last_name l FROM \"test_emp\" \nWHERE emp_no &lt; 10003 OR emp_no = 10005 ORDER BY emp_no LIMIT 5\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.percentileFunction.markdown": "### PERCENTILE\n返回字段 field_name 中输入值的第 n 个百分位(用 numeric_exp 参数表示)。\n\n```\nPERCENTILE(\n field_name, \n percentile[, \n method[, \n method_parameter]])\n```\n- field_name数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n- 百分位数:数字表达式(必须为常数并且不得基于字段)。如果为 null该函数将返回 null。\n- 方法百分位数算法的可选字符串文本。可能的值tdigest 或 hdr。默认值为 tdigest。\n- method_parameter配置百分位数算法的可选数字文本。为 tdigest 配置表达式,或为 hdr 配置 number_of_significant_value_digits。默认值与后备算法的默认值相同。\n\n```\n精选\n languages,\n PERCENTILE(salary, 97.3, 'tdigest', 100.0) AS \"97.3_TDigest\",\n PERCENTILE(salary, 97.3, 'hdr', 3) AS \"97.3_HDR\"\nFROM emp\nGROUP BY languages\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.percentileRankFunction.markdown": "### PERCENTILE_RANK\n返回字段 field_name 中输入值的第 n 个百分位等级(用 numeric_exp 参数表示)。\n\n```\nPERCENTILE_RANK(\n field_name, \n value[, \n method[, \n method_parameter]]) \n```\n- field_name数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n- 百分位数:数字表达式(必须为常数并且不得基于字段)。如果为 null该函数将返回 null。\n- 方法百分位数算法的可选字符串文本。可能的值tdigest 或 hdr。默认值为 tdigest。\n- method_parameter配置百分位数算法的可选数字文本。为 tdigest 配置表达式,或为 hdr 配置 number_of_significant_value_digits。默认值与后备算法的默认值相同。\n\n```\n精选\n languages,\n ROUND(PERCENTILE_RANK(salary, 65000, 'tdigest', 100.0), 2) AS \"rank_TDigest\",\n ROUND(PERCENTILE_RANK(salary, 65000, 'hdr', 3), 2) AS \"rank_HDR\"\nFROM emp\nGROUP BY languages\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.skewnessFunction.markdown": "### SKEWNESS\n量化字段 field_name 中输入值的非对称分布。\n\n```\nSKEWNESS(field_name) \n```\n- field_name数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, SKEWNESS(salary) AS s FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.stsdevpopFunction.markdown": "### STDDEV_POP\n返回字段 field_name 中输入值的填充标准偏差。\n\n```\nSTDDEV_POP(field_name) \n```\n- field_name数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, STDDEV_POP(salary) AS stddev FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.stsdevsampFunction.markdown": "### STDDEV_SAMP\n返回字段 field_name 中输入值的样例标准偏差。\n\n```\nSTDDEV_SAMP(field_name) \n```\n- field_name数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, STDDEV_SAMP(salary) AS stddev FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.subtractOperator.markdown": "### Subtract (infix -)\n```\nSELECT 1 - 1 AS x\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.sumFunction.markdown": "### SUM\n返回字段 field_name 中所有输入值的总和。\n\n```\nSUM(field_name) \n```\n- 数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT SUM(salary) AS sum FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.sumofsquaresFunction.markdown": "### SUM_OF_SQUARES\n返回字段 field_name 中输入值的平方和。\n\n```\nSUM_OF_SQUARES(field_name) \n```\n- field_name数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, SUM_OF_SQUARES(salary) AS sumsq\n FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.varpopFunction.markdown": "### VAR_POP\n返回字段 field_name 中输入值的总体方差。\n\n```\nVAR_POP(field_name) \n```\n- field_name数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, VAR_POP(salary) AS varpop FROM emp\n```\n ",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.varsampFunction.markdown": "### VAR_SAMP\n返回字段 field_name 中输入值的样例方差。\n\n```\nVAR_SAMP(field_name) \n```\n- field_name数字字段。如果此字段仅包含 null 值,此函数将返回 null。否则该函数将忽略此字段中的 null 值。\n\n```\nSELECT MIN(salary) AS min, MAX(salary) AS max, VAR_SAMP(salary) AS varsamp FROM emp\n```\n ",
"unifiedSearch.filter.applyFilterActionTitle": "将筛选应用于当前视图",
"unifiedSearch.filter.applyFilters.popupHeader": "选择要应用的筛选",
"unifiedSearch.filter.applyFiltersPopup.cancelButtonLabel": "取消",
@ -5912,58 +5912,58 @@
"unifiedSearch.query.queryBar.searchInputPlaceholderForText": "筛选您的数据",
"unifiedSearch.query.queryBar.syntaxOptionsTitle": "语法选项",
"unifiedSearch.query.queryBar.textBasedLanguagesTechPreviewLabel": "技术预览",
"unifiedSearch.query.textBasedLanguagesEditor.aggregateFunctions": "聚合函数",
"unifiedSearch.query.textBasedLanguagesEditor.aggregateFunctionsDocumentationDescription": "用于从一组输入值计算单一结果的函数。Elasticsearch SQL 仅在与分组(隐式或显式)一起时才支持聚合函数。",
"unifiedSearch.query.textBasedLanguagesEditor.comparisonOperators": "比较运算符",
"unifiedSearch.query.textBasedLanguagesEditor.comparisonOperatorsDocumentationDescription": "用于比较一个或多个表达式的布尔运算符。",
"unifiedSearch.query.textBasedLanguagesEditor.disableWordWrapLabel": "禁用自动换行",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.AddOperator": "添加",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.AndOperator": "且",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.averageFunction": "平均值",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.between": "介于",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.comparison": "对比",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countAllFunction": "Count (All)",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countDistinctFunction": "Count (Distinct)",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.countFunction": "计数",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.divideOperator": "除",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.equality": "等于",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.firstFunction": "First / First_value",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.inequality": "不等于",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.inOperator": "IN",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.kurtosisFunction": "峰度",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.lastFunction": "Last / Last_value",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.madFunction": "Mad",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.maxFunction": "最大值",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.minFunction": "最小值",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.moduloOperator": "模数或余数",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.multiplyOperator": "乘积",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.negateOperator": "求反",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.NotOperator": "非",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.nullNotNull": "IS NULL 和 IS NOT NULL",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.nullSafeEquality": "Null safe equality (&lt;=>)",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.OrOperator": "OR",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.percentileFunction": "百分位数",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.percentileRankFunction": "百分位等级",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.skewnessFunction": "偏度",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.stsdevpopFunction": "STDDEV_POP",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.stsdevsampFunction": "STDDEV_SAMP",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.SubtractOperator": "减",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.sumFunction": "求和",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.sumofsquaresFunction": "平方和",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.varpopFunction": "VAR_POP",
"unifiedSearch.query.textBasedLanguagesEditor.documentation.varsampFunction": "VAR_SAMP",
"unifiedSearch.query.textBasedLanguagesEditor.documentationLabel": "文档",
"unifiedSearch.query.textBasedLanguagesEditor.EnableWordWrapLabel": "启用自动换行",
"unifiedSearch.query.textBasedLanguagesEditor.errorsTitle": "错误",
"unifiedSearch.query.textBasedLanguagesEditor.expandTooltip": "展开查询编辑器",
"unifiedSearch.query.textBasedLanguagesEditor.howItWorks": "运作方式",
"unifiedSearch.query.textBasedLanguagesEditor.logicalOperators": "逻辑运算符",
"unifiedSearch.query.textBasedLanguagesEditor.logicalOperatorsDocumentationDescription": "用于评估一个或多个表达式的布尔运算符。",
"unifiedSearch.query.textBasedLanguagesEditor.mathOperators": "数学运算符",
"unifiedSearch.query.textBasedLanguagesEditor.mathOperatorsDocumentationDescription": "执行影响一个或两个值的数学运算。结果为数值类型的值。",
"unifiedSearch.query.textBasedLanguagesEditor.MinimizeEditor": "最小化编辑器",
"unifiedSearch.query.textBasedLanguagesEditor.minimizeTooltip": "压缩查询编辑器",
"unifiedSearch.query.textBasedLanguagesEditor.runQuery": "运行查询",
"textBasedEditor.query.textBasedLanguagesEditor.aggregateFunctions": "聚合函数",
"textBasedEditor.query.textBasedLanguagesEditor.aggregateFunctionsDocumentationDescription": "用于从一组输入值计算单一结果的函数。Elasticsearch SQL 仅在与分组(隐式或显式)一起时才支持聚合函数。",
"textBasedEditor.query.textBasedLanguagesEditor.comparisonOperators": "比较运算符",
"textBasedEditor.query.textBasedLanguagesEditor.comparisonOperatorsDocumentationDescription": "用于比较一个或多个表达式的布尔运算符。",
"textBasedEditor.query.textBasedLanguagesEditor.disableWordWrapLabel": "禁用自动换行",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.AddOperator": "添加",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.AndOperator": "且",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.averageFunction": "平均值",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.between": "介于",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.comparison": "对比",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countAllFunction": "Count (All)",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countDistinctFunction": "Count (Distinct)",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.countFunction": "计数",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.divideOperator": "除",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.equality": "等于",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.firstFunction": "First / First_value",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.inequality": "不等于",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.inOperator": "IN",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.kurtosisFunction": "峰度",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.lastFunction": "Last / Last_value",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.madFunction": "Mad",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.maxFunction": "最大值",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.minFunction": "最小值",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.moduloOperator": "模数或余数",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.multiplyOperator": "乘积",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.negateOperator": "求反",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.NotOperator": "非",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.nullNotNull": "IS NULL 和 IS NOT NULL",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.nullSafeEquality": "Null safe equality (&lt;=>)",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.OrOperator": "OR",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.percentileFunction": "百分位数",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.percentileRankFunction": "百分位等级",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.skewnessFunction": "偏度",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.stsdevpopFunction": "STDDEV_POP",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.stsdevsampFunction": "STDDEV_SAMP",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.SubtractOperator": "减",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.sumFunction": "求和",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.sumofsquaresFunction": "平方和",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.varpopFunction": "VAR_POP",
"textBasedEditor.query.textBasedLanguagesEditor.documentation.varsampFunction": "VAR_SAMP",
"textBasedEditor.query.textBasedLanguagesEditor.documentationLabel": "文档",
"textBasedEditor.query.textBasedLanguagesEditor.EnableWordWrapLabel": "启用自动换行",
"textBasedEditor.query.textBasedLanguagesEditor.errorsTitle": "错误",
"textBasedEditor.query.textBasedLanguagesEditor.expandTooltip": "展开查询编辑器",
"textBasedEditor.query.textBasedLanguagesEditor.howItWorks": "运作方式",
"textBasedEditor.query.textBasedLanguagesEditor.logicalOperators": "逻辑运算符",
"textBasedEditor.query.textBasedLanguagesEditor.logicalOperatorsDocumentationDescription": "用于评估一个或多个表达式的布尔运算符。",
"textBasedEditor.query.textBasedLanguagesEditor.mathOperators": "数学运算符",
"textBasedEditor.query.textBasedLanguagesEditor.mathOperatorsDocumentationDescription": "执行影响一个或两个值的数学运算。结果为数值类型的值。",
"textBasedEditor.query.textBasedLanguagesEditor.MinimizeEditor": "最小化编辑器",
"textBasedEditor.query.textBasedLanguagesEditor.minimizeTooltip": "压缩查询编辑器",
"textBasedEditor.query.textBasedLanguagesEditor.runQuery": "运行查询",
"unifiedSearch.queryBarTopRow.submitButton.refresh": "刷新查询",
"unifiedSearch.queryBarTopRow.submitButton.run": "运行查询",
"unifiedSearch.queryBarTopRow.submitButton.update": "需要更新",

View file

@ -154,7 +154,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
);
await testSubjects.click('querySubmitButton');
await PageObjects.header.waitUntilLoadingHasFinished();
await testSubjects.click('unifiedTextLangEditor-expand');
await testSubjects.click('TextBasedLangEditor-expand');
await testSubjects.click('unifiedHistogramEditVisualization');
await PageObjects.header.waitUntilLoadingHasFinished();
@ -173,7 +173,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
);
await testSubjects.click('querySubmitButton');
await PageObjects.header.waitUntilLoadingHasFinished();
await testSubjects.click('unifiedTextLangEditor-expand');
await testSubjects.click('TextBasedLangEditor-expand');
await testSubjects.click('unifiedHistogramEditVisualization');
await PageObjects.header.waitUntilLoadingHasFinished();

View file

@ -52,10 +52,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await switchToTextBasedLanguage('SQL');
expect(await testSubjects.exists('showQueryBarMenu')).to.be(false);
expect(await testSubjects.exists('addFilter')).to.be(false);
await testSubjects.click('unifiedTextLangEditor-expand');
await testSubjects.click('TextBasedLangEditor-expand');
const textBasedQuery = await monacoEditor.getCodeEditorValue();
expect(textBasedQuery).to.be('SELECT * FROM "log*"');
await testSubjects.click('unifiedTextLangEditor-minimize');
await testSubjects.click('TextBasedLangEditor-minimize');
});
it('should allow adding and using a field', async () => {
@ -172,7 +172,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it('should allow using an index pattern that is not translated to a dataview', async () => {
await switchToTextBasedLanguage('SQL');
await testSubjects.click('unifiedTextLangEditor-expand');
await testSubjects.click('TextBasedLangEditor-expand');
await monacoEditor.setCodeEditorValue(
'SELECT extension, AVG("bytes") as average FROM "logstash*" GROUP BY extension'
);

View file

@ -5406,6 +5406,14 @@
version "0.0.0"
uid ""
"@kbn/text-based-editor@link:packages/kbn-text-based-editor":
version "0.0.0"
uid ""
"@kbn/text-based-languages@link:src/plugins/text_based_languages":
version "0.0.0"
uid ""
"@kbn/third-party-lens-navigation-prompt-plugin@link:x-pack/examples/third_party_lens_navigation_prompt":
version "0.0.0"
uid ""