添加默认字段 API
编辑添加默认字段 API
编辑 [预览] 此功能处于技术预览阶段,可能会在未来的版本中更改或删除。 Elastic 将努力解决任何问题,但技术预览中的功能不受官方 GA 功能的支持 SLA 约束。 在 Elasticsearch 7.0 及更高版本中,一些查询类型(例如简单查询字符串)对其可以查询的字段数量有限制。 要在 Elasticsearch 中配置此上限,请设置 indices.query.bool.max_clause_count
集群设置,默认值为 1024。
对于字段数量超过上限的索引,请添加 index.query.default_field
索引设置,以告知 Elasticsearch 在未为查询指定字段时默认使用哪些字段。 使用添加默认字段 API 将 index.query.default_field
设置添加到 Elasticsearch 索引。
请求
编辑要将 index.query.default_field
设置添加到 Elasticsearch 索引,请向 /api/upgrade_assistant/add_query_default_field/<index>
提交 POST 请求
GET /api/upgrade_assistant/add_query_default_field/myIndex { "fieldTypes": ["text", "keyword"], "otherFields": ["myField.*"] }
要将 index.query.default_field
索引设置添加到指定的索引,Kibana 会从索引映射中生成所有字段的数组。 这些字段包含 fieldTypes
中指定的类型。 Kibana 将 otherFields
中指定的任何其他字段附加到默认字段数组中。
响应代码
编辑-
200
- 表示调用成功。
-
400
- 表示索引已具有
index.query.default_field
设置。 不会对索引进行任何更改。
示例
编辑您的索引包含以下映射
GET /myIndex/_mappings { "myIndex": { "mappings": { "properties": { "field1": { "type": "text" }, "field2": { "type": "float" }, "nestedfield": { "properties": { "field3": { "type": "keyword" }, "field4": { "type": "long" }, } } } } } }
向 Kibana 发出以下请求
GET /api/upgrade_assistant/add_query_default_field/myIndex { "fieldTypes": ["text", "long"], "otherFields": ["field2"] }
API 返回以下内容
GET /myIndex/_settings?flat_settings=true { "myIndex": { "settings": { "index.query.default_field": [ "field1", "nestedfield.field4", "field2", ] } } }
Kibana 根据指定的 fieldTypes
生成 field1
和 nestedfield.field4
值,然后将 otherFields
附加到数组中。