最近在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上檢視、篩選紀錄檔就一切正常了:)
作者: netry
出處: https://www.cnblogs.com/netry/p/openseach_kibana_unindexed_fileds.html
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連結。