預設情況下,每個主分片都有乙個副本,但可以在現有索引上動態更改副本數。 永遠不會在與其主分片相同的節點上啟動副本分片。
分片分布計算公式:shard_num = hash(_routing) % num_primary_shards
_routing是文件的_id
寫入到elasticsearch的文件,在預設的情況下並不馬上可以進行搜尋。這是因為在elasticsearch的設計中,有乙個叫做refresh的操作。它可以幫在lucene裡的離散的segments進行合併,並使新進入的文件變為搜尋可見。通常會有乙個refreshtimer來定時完成這個操作。這個週期為1秒。這也是我們通常所說的elasticsearch可以實現秒級的搜尋。當然這個timer的週期也可以在索引的設定中進行配置。如果我們想讓我們的結果馬上可以對搜尋可見,我們可以用如下的方法:
put twitter/_doc/1?refresh=true
上面的方式可以強制使elasticsearch進行refresh的操作,當然這個是有代價的。頻繁的進行這種操作,可以使我們的elasticsearch變得非常慢。另外一種方式是通過設定refresh=wait_for。這樣相當於乙個同步的操作,它等待下乙個refresh週期發生完後,才返回。這樣可以確保我們在呼叫上面的介面後,馬上可以搜尋到我們剛才錄入的文件:
put twitter/_doc/1?refresh=wait_for
# 關閉索引
put twitter/_close
# 關閉索引後再查詢這個索引的話會報錯:index_closed_exception
# 開啟索引
put twitter/_open
nginx 未完待續
yum install y pcre yum install y pcre devel yum install y openssl yum install y openssl devel yum install y zlib yum install y gccyum安裝 yum install y ...
sqlparse(未完待續)
sqlparse.split sql,encoding none sql 包含乙個或多個sql語句的字串 encoding 語句的編碼 可選 sql select from foo select from bar sql list sqlparse.split sql print sql list ...
CALayer使用(未完待續)
一 什麼是calayer?在ios系統中,你能看得到摸得著的東西基本都是uiview。比如乙個按鈕 乙個文字標籤 乙個文字輸入框 乙個圖示等等,這些都是uiview。其實uiview之所以顯示在螢幕上,完全是因為它內部的乙個層。在建立uiview物件時,uiview內部會自動建立乙個層 即calay...