diff --git a/x-pack/legacy/plugins/index_management/public/app/components/mappings_editor/components/document_fields/field_parameters/index.ts b/x-pack/legacy/plugins/index_management/public/app/components/mappings_editor/components/document_fields/field_parameters/index.ts
index 9622466ad795..b248776c884f 100644
--- a/x-pack/legacy/plugins/index_management/public/app/components/mappings_editor/components/document_fields/field_parameters/index.ts
+++ b/x-pack/legacy/plugins/index_management/public/app/components/mappings_editor/components/document_fields/field_parameters/index.ts
@@ -51,3 +51,5 @@ export * from './fielddata_parameter';
export * from './split_queries_on_whitespace_parameter';
export * from './locale_parameter';
+
+export * from './max_shingle_size_parameter';
diff --git a/x-pack/legacy/plugins/index_management/public/app/components/mappings_editor/components/document_fields/field_parameters/max_shingle_size_parameter.tsx b/x-pack/legacy/plugins/index_management/public/app/components/mappings_editor/components/document_fields/field_parameters/max_shingle_size_parameter.tsx
new file mode 100644
index 000000000000..bc1917b2da96
--- /dev/null
+++ b/x-pack/legacy/plugins/index_management/public/app/components/mappings_editor/components/document_fields/field_parameters/max_shingle_size_parameter.tsx
@@ -0,0 +1,45 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License;
+ * you may not use this file except in compliance with the Elastic License.
+ */
+
+import React from 'react';
+
+import { i18n } from '@kbn/i18n';
+
+import { getFieldConfig } from '../../../lib';
+import { EditFieldFormRow } from '../fields/edit_field';
+import { UseField, Field } from '../../../shared_imports';
+
+interface Props {
+ defaultToggleValue: boolean;
+}
+
+export const MaxShingleSizeParameter = ({ defaultToggleValue }: Props) => (
+
+
+
+);
diff --git a/x-pack/legacy/plugins/index_management/public/app/components/mappings_editor/components/document_fields/fields/field_types/search_as_you_type.tsx b/x-pack/legacy/plugins/index_management/public/app/components/mappings_editor/components/document_fields/fields/field_types/search_as_you_type.tsx
index 83541ec982ee..dafbebd24b3f 100644
--- a/x-pack/legacy/plugins/index_management/public/app/components/mappings_editor/components/document_fields/fields/field_types/search_as_you_type.tsx
+++ b/x-pack/legacy/plugins/index_management/public/app/components/mappings_editor/components/document_fields/fields/field_types/search_as_you_type.tsx
@@ -14,6 +14,7 @@ import {
NormsParameter,
SimilarityParameter,
TermVectorParameter,
+ MaxShingleSizeParameter,
} from '../../field_parameters';
import { BasicParametersSection, AdvancedParametersSection } from '../edit_field';
@@ -24,7 +25,8 @@ interface Props {
const getDefaultToggleValue = (param: string, field: FieldType) => {
switch (param) {
case 'similarity':
- case 'term_vector': {
+ case 'term_vector':
+ case 'max_shingle_size': {
return field[param] !== undefined && field[param] !== getFieldConfig(param).defaultValue;
}
case 'analyzers': {
@@ -47,6 +49,10 @@ export const SearchAsYouType = React.memo(({ field }: Props) => {
+
+
{
enable_position_increments: [],
depth_limit: true,
dims: false,
+ max_shingle_size: 'string_not_allowed',
},
// All the parameters in "goodField" have the correct format
// and should still be there after the validation ran.
@@ -307,6 +308,7 @@ describe('Properties validator', () => {
enable_position_increments: true,
depth_limit: 20,
dims: 'abc',
+ max_shingle_size: 2,
},
};
diff --git a/x-pack/legacy/plugins/index_management/public/app/components/mappings_editor/types.ts b/x-pack/legacy/plugins/index_management/public/app/components/mappings_editor/types.ts
index 0fce3422344b..b7bf4e6b112d 100644
--- a/x-pack/legacy/plugins/index_management/public/app/components/mappings_editor/types.ts
+++ b/x-pack/legacy/plugins/index_management/public/app/components/mappings_editor/types.ts
@@ -119,7 +119,8 @@ export type ParameterName =
| 'points_only'
| 'path'
| 'dims'
- | 'depth_limit';
+ | 'depth_limit'
+ | 'max_shingle_size';
export interface Parameter {
fieldConfig: FieldConfig;