Index
我們可以看到在Kibana右邊的窗口中有下面的輸出:
在上面,我們可以看出來我們已經成功地創建了一個叫做twitter的index。通過這樣的方法,我們可以自動創建一個index。如果大家不喜歡自動創建一個index,我們可以修改如下的一個設置:
PUT _cluster/settings { "persistent": { "action.auto_create_index": "false" } }
詳細設置請參閱鏈接。如果你你想禁止自動創建索引,您必須配置action.auto_create_index以允許這些創建以下索引的組件:
PUT _cluster/settings { "persistent": { "action.auto_create_index": ".monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*" } }
如果使用Logstash或Beats,則應在上面的列表中添加其他索引名稱。我們也可以在elasticsearch.yml里進行配置。
action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*
Refresh
通常對一個通過上面方法寫入到Elasticsearch的文檔,在默認的情況下並不馬上可以進行搜索。這是因為在Elasticsearch的設計中,有一個叫做refresh的操作。它可以使更改可見以進行搜索的操作。通常會有一個refresh timer來定時完成這個操作。這個周期為1秒。這也是我們通常所說的Elasticsearch可以實現秒級的搜索。當然這個timer的周期也可以在索引的設置中進行配置。如果我們想讓我們的結果馬上可以對搜索可見,我們可以用如下的方法:
PUT twitter/_doc/1?refresh=true { "user": "GB", "uid": 1, "city": "Beijing", "province": "Beijing", "country": "China" }
上面的方式可以強制使Elasticsearch進行refresh的操作,當然這個是有代價的。頻繁的進行這種操作,可以使我們的Elasticsearch變得非常慢。另外一種方式是通過設置refresh=wait_for。這樣相當於一個同步的操作,它等待下一個refresh周期發生完后,才返回。這樣可以確保我們在調用上面的接口后,馬上可以搜索到我們剛才錄入的文檔:
PUT twitter/_doc/1?refresh=wait_for { "user": "GB", "uid": 1, "city": "Beijing", "province": "Beijing", "country": "China" }
Open/close Index
Elasticsearch支持索引的在線/離線模式。 使用脫機模式時,在群集上幾乎沒有任何開銷地維護數據。 關閉索引后,將阻止讀/寫操作。 當您希望索引重新聯機時,只需打開它即可。 但是,關閉索引會占用大量磁盤空間。 您可以通過將cluster.indices.close.enable的默認值從true更改為false來禁用關閉索引功能,以避免發生意外。
一旦twitter索引被關閉了,那么我們再訪問時會出現如下的錯誤:
我們可以通過_open接口來重新打開這個index:
Freeze/unfreeze Index
凍結索引(freeze index)在群集上幾乎沒有開銷(除了將其元數據保留在內存中),並且是只讀的。 只讀索引被阻止進行寫操作,例如docs-index或force merge。 請參閱凍結索引和取消凍結索引。
凍結索引受到限制,以限制每個節點的內存消耗。 每個節點的並發加載的凍結索引數受search_throttled線程池中的線程數限制,默認情況下為1。 默認情況下,即使已明確命名凍結索引,也不會針對凍結索引執行搜索請求。 這是為了防止由於誤將凍結的索引作為目標而導致的意外減速。 如果要包含凍結索引做搜索,必須使用查詢參數ignore_throttled = false來執行搜索請求。
我們可以使用如下的命令來對twitter索引來凍結:
POST twitter/_freeze
在執行上面的命令后,我們再對twitter進行搜索:
我們搜索不到任何的結果。按照我們上面所說的,我們必須加上ignore_throttled=false參數來進行搜索:
顯然對於一個frozen的索引來說,我們是可以對它進行搜索的。我們可以通過如下的命令來對這個已經凍結的索引來進行解凍:
POST twitter/_unfreeze
一旦我們的索引被成功解凍,那么它就可以像我們正常的索引來進行操作了,而不用添加參數 ignore_throttled=false 來進行訪問。
轉載至https://blog.csdn.net/UbuntuTouch/article/details/99481016