初識 ES 中的 mapping

2021-09-24 02:15:41 字數 1085 閱讀 6443

心有尺素,身若微塵

elasticsearch(以下簡稱es)是沒有模式(schema)的,當我們執行以下命令:

filter的功能很容易理解:乙個filter就是乙個轉換資料的方法, 輸入乙個字串,這個方法返回另乙個字串,比如乙個將字串轉為小寫的方法就是乙個filter很好的例子。

乙個analyzer由一組順序排列的filter組成,執行分析的過程就是按順序乙個filter乙個filter依次呼叫, es儲存和索引最後得到的結果。

預設analyzer

我們可以在做查詢的時候鍵入_analyze關鍵字檢視分析的過程。使用以下指令檢視description欄位的轉換過程:

, , ]可以看到, 我們的description欄位的值轉換成了[pretty], [cool], [guy], 在轉換過程中大寫的a, 標點符號都被filter過濾掉了, pretty也轉成了全小寫的pretty, 這裡比較重要的是, 即使es儲存資料的時候仍然儲存的是完整的資料, 但是可以搜尋到這條資料的關鍵字只剩下這三個單詞了, 其他的都是拋棄掉了。

看看以單詞a來搜尋的結果:

es中對mapping的理解

3 不同的資料型別 比如說text和date 可能有的是exact value,有的是full text 5 exact value和full text型別的field決定了,在乙個搜尋過來的時候,對exact value field或者是full text field進行搜尋的行為不一樣,會跟建立...

ES的mapping配置詳解

開關禁用它。如果某個域不希望被加到 all中,可以使用 include in all false關閉 properties name dt from explode time search all date detection false 關閉日期自動檢測,如果開啟,會對於設定為日期格式的字段進行判...

ES中刪除索引的mapping欄位時應該考慮的點

建立新索引 原索引匯出資料到新索引 新索引建立原索引一致的別名 刪除原索引 針對於第四步 這個就要用到索引別名了,如果你最開始建索引的時候沒有考慮設計索引別名,那就杯具了。你可以把索引的名稱設定成name v1 別名設定為name,然後 裡面訪問搜尋的時候連線的其實是別名name 這樣當你以後索引結...