乙個 field 的設定是不能修改的,如果要修改乙個 field,那麼應該重新按照新的mapping,建立乙個index,然後將資料批量查詢出來,重新用 bulk api 寫入到新的index中。
批量查詢的時候,建議採用scroll api,並且採用多執行緒併發的方式來reindex資料,每次scroll就查詢指定日期扽一段資料,交給乙個執行緒即可。
//建立乙個索引並寫入一條資料,根據資料動態建立mapping,content型別設為date
put /index1/type1/4
//查詢資料
get /index1/type1/_search
//檢視mapping
get /index1/type1/_mapping
//下面的put報錯,因為前面的寫入,動態設定了mapping中content被設定為date型別
put /index1/type1/4
//修改content的型別為string,報錯,mapping一旦設定將不能修改
put /index1/_mapping/type1
}}//通過下面的方案,解決上面的問題
//建立乙個新的索引,把index1索引中資料查詢出來匯入到新的索引中
//但是應用程式使用的是之前的索引,為了不用重啟應用程式,給index1這個索引起個別名
put /index1/_alias/index2
//建立新的索引,把content的型別改為字串
put /newindex}}
}}//使用scroll批量查詢
get /index1/type1/_searchscroll=1m
},"sort": ,
"size": 2
}//使用bulk批量寫入新的索引
post /_bulk
}//將別名index2和新索引關聯,應用程式不用重啟
post /_aliases},}
]}get index2/type2/_search
elasticsearch配置詳解
elasticsearch的config資料夾裡面有兩個配置檔案 elasticsearch.yml和logging.yml,第乙個是es的基本配置檔案,第二個是日誌配置檔案,es也是使用log4j來記錄日誌的,所以logging.yml裡的設定按普通log4j配置檔案來設定就行了。下面主要講解下e...
誰在使用Elasticsearch
github github使用elasticsearch搜尋20tb的資料,包括13億的檔案和1300億行的 這個不用介紹了吧,碼農們都懂的,github在2013年1月公升級了他們的 搜尋,由solr轉為elasticsearch,目前集群規模為26個索引儲存節點和8個客戶端節點 負責處理搜尋請求...
elasticsearch配置說明
elasticsearch.yml是elasticsearch主要的配置檔案,所有的配置都在這個檔案裡完成,一般情況下,預設的配置已經可以比較好地執行乙個集群了,但你也可以對其進行微調。在環境變數中的引數可以用來作為配置引數的值,比如配置檔案裡舉的乙個例子為 node.rack 再比如 等。下面對其...