添加默认字段 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
追加到数组中。