爱站网关键词密度,网站建设 开发,广东广州快速网站制作企业,高端的网站设计制作背景
最近在OpenSearch查看线上日志的时候#xff0c;发现某个索引下有些字段无法直接在界面上筛选#xff0c;搜索到也不高亮#xff0c;非常的不方便#xff0c;就像下面这样 字段左侧两个筛选按钮禁用了无法点击#xff0c;提示 Unindexed fields can not be searched…背景
最近在OpenSearch查看线上日志的时候发现某个索引下有些字段无法直接在界面上筛选搜索到也不高亮非常的不方便就像下面这样 字段左侧两个筛选按钮禁用了无法点击提示 Unindexed fields can not be searched
右侧则有感叹号提示 No cached mapping for this field. Refresh field list from the Management Index Patterns page
浅析
索引模式Index Pattern是用于定义OpenSearch中索引的元数据信息的。它包含了索引中包含的所有字段的名称、数据类型、分析器、存储方式等信息。当用户进行搜索或聚合操作时Kibana需要根据字段映射信息来解析查询请求以便正确地查询并返回结果。
No cached mapping for this field提示意味着无法找到字段映射信息而Unindexed fields can not be searched则是由于没有正确的字段映射信息导致无法搜索未索引字段。这通常发生在索引模式被修改后但是缓存还没有更新时或者在新索引被创建但是还没有刷新字段列表时。
解决这个问题的方法是在Kibana的管理页面中刷新字段列表以确保所有字段的映射信息都是最新的。在这个页面中Kibana会缓存映射信息以提高性能如果新加入了一个字段则需要刷新字段列表才能使其可搜索。
解决
在OpenSeach里从Stack Management进入 Index patterns页面找到对应的索引模式点击右上角刷新按钮 大部分情况刷新完问题就解决了但是实际上也可能会引入新的问题比如下面这样直接搜索报错 F12查看请求可以看到opensearch返回了400 错误信息 Trying to retrieve too many docvalue_fields. Must be less than or equal to: [100] but was [215]. This limit can be set by changing the [index.max_docvalue_fields_search] index level setting
由于我们刷新了字段列表导致搜索的字段超过了默认100的上限最简单的方法是在【Dev Tools】里用下面REST API上调该索引模式的max_docvalue_fields_search PUT /your-index-*/_settings{index : {max_docvalue_fields_search : 300}}
成功后会返回acknowledged : true。 这些做完之后在OpenSearch上查看、筛选日志就一切正常了
参考
Kibana generates requests with too many docvalue_fields, causing Elasticsearch to throw errors · Issue #22897 · elastic/kibana · GitHub