(1)根據應用情況來說,是否滿足手動指定document id的前提:
一般來說,是從某些其他的系統中,匯入一些資料到es時,會採取這種方式,就是使用系統中已有資料的唯一標識,作為es中document的id。舉個例子,比如說,我們現在在開發乙個電商**,做搜尋功能,或者是oa系統,做員工檢索功能。這個時候,資料首先會在**系統或者it系統內部的資料庫中,會先有乙份,此時就肯定會有乙個資料庫的primary key(自增長,uuid,或者是業務編號)。如果將資料匯入到es中,此時就比較適合採用資料在資料庫中已有的primary key。
如果說,我們是在做乙個系統,這個系統主要的資料儲存就是es一種,也就是說,資料產生出來以後,可能就沒有id,直接就放es乙個儲存,那麼這個時候,可能就不太適合說手動指定document id的形式了,因為你也不知道id應該是什麼,此時可以採取下面要講解的讓es自動生成id的方式。
(2)put /index/type/id
put /test_index/test_type/2
2、自動生成document id
(1)post /index/type
post /test_index/test_type
, "created": true
}
(2)自動生成的id,長度為20個字元,url安全,base64編碼,guid,分布式系統並行生成時不可能會發生衝突 i 和i 的用法
式1的運算過程 第一步,第乙個 i計算後i 1,i計算的結果為1 第二步,然後就是i 的計算後i的值不變仍為1,i 的計算結果為1 第三步,接著計算前一步驟中i 自增後的值,此時i 2,再就是第二i 的計算,i的值不變仍是2,所以這一步中i 的計算結果為2 第四步,同上一步計算前一步驟中i 自增後的...
i和i 的區別
大家都應該知道i 和 i的區別,前者是先使用i的值,然後再增加1,而後者是先增加1然後再使用i的值。但是i 和 i那個更好呢?我們實現角度來看 前者是將i值加1後賦給i,然後返回i本身 而後者是先用個臨時變數儲存i值,然後將i值加1賦給i,然後返回臨時變數的值。內建資料型別他們的效率差不多,看他們的...
i 和 i 的輸出
include include include int main int argc,const char argv 輸出結果為 3 3 3 1 0 0 在vs中 printf輸出時,從輸出表示式右到左計算,然後從右到左入棧,再出棧 vs中的彙編下的 5 int main int argc,const...