ElasticSearch最佳入門實踐(二十三)基於groovy指令碼進行partial update
es,其實是有個內建的指令碼支援的,可以基於groovy指令碼實現各種各樣的複雜操作
1、初始化一條資料
2、內建指令碼
3、外部指令碼
4、用指令碼刪除文件
5、update操作
6、如果指定的document不存在,就執行upsert中的初始化操作;如果指定的document存在,就執行doc或者script指定的partial update操作
相關推薦
ElasticSearch最佳入門實踐(二十三)基於groovy指令碼進行partial update
es,其實是有個內建的指令碼支援的,可以基於groovy指令碼實現各種各樣的複雜操作 1、初始化一條資料 2、內建指令碼 3、外部指令碼 4、用指令碼刪除文件 5、update操作 6
ElasticSearch最佳入門實踐(四十三)mapping 的核心資料型別以及 dynamic mapping
1、核心的資料型別 string byte,short,integer,long float,double boolean date 2、dynamic mapping true or false --> boolean 123 --> lo
ElasticSearch最佳入門實踐(三十三)search結果深入解析search timeout機制揭祕
1、我們如果發出一個搜尋請求的話,會拿到一堆搜尋結果,這個搜尋結果裡的各種資料,都代表了什麼含義 took:整個搜尋請求花費了多少毫秒 hits.total:本次搜尋,返回了幾條結果 hits.max_score:本次搜尋的所有結果中,最大的相關度分數是多少,每一條do
ElasticSearch最佳入門實踐(七十三)Java 實戰 - 對員工資訊進行聚合分析
構建資料 client.prepareIndex("company", "employee", "1") .setSource(XContentFactory.jsonBuilder() .startOb
ElasticSearch最佳入門實踐(六十三)索引管理_mapping root object
1、root object 就是某個type對應的mapping json,包括了properties,metadata(_id,_source,_type),settings(analyzer),其他settings(比如include_in_all) PUT /
ElasticSearch最佳入門實踐(七十三)Java 實戰
構建資料 client.prepareIndex("company", "employee", "1") .setSource(XContentFactory.jsonBuilder()
ElasticSearch最佳入門實踐(二十九)document增刪改內部原理揭祕
步驟 (1)客戶端選擇一個node傳送請求過去,這個node就是coordinating node(協調節點) (2)coordinating node,對document進行路由,將請求轉發給對應的node(有primary shard) (3)實際的node上的prima
ElasticSearch最佳入門實踐(二十八)剖析document資料路由原理
1、document路由到shard上是什麼意思? 我們這段,一個index的資料會被分為多片,每個片都在一個shard中,所以說,一個document存在於一個shard中 當客戶端建立的時候,es此時就需要決定說,這個document存在於那個shard上。 這個過程就稱
ElasticSearch最佳入門實踐(二十五)mget批量查詢api
1、批量查詢的好處 就是一條一條的查詢,比如說要查詢100條資料,那麼就要傳送100次網路請求,這個開銷還是很大的 如果進行批量查詢的話,查詢100條資料,就只要傳送1次網路請求,網路請求的效能開銷縮減100倍 2、mget的語法 可以說mget是很重要
ElasticSearch最佳入門實踐(二十四)partial update樂觀鎖併發控制原理以及相關操作
(1)partial update內建樂觀鎖併發控制 partial update內部是自動執行之前所說的樂觀鎖的併發控制方案 兩個執行緒 都拿到了document資料和_version 使用傳過來的field更新document 執行緒B也在做partial update
ElasticSearch最佳入門實踐(二十七)總結以及什麼是distributed document store
1、總結 快速入門了一下,最基本的原理,最基本的操作 在入門之後,對ES的分散式的基本原理,進行了相對深入一些的剖析 圍繞著document這個東西,進行操作,進行講解和分析 2、什麼是distributed document s
ElasticSearch最佳入門實踐(二十六)bulk批量增刪改
1、bulk語法 POST /_bulk { “delete”: { “_index”: “test_index”, “_type”: “test_type”, “_id”: “3” }} { “create”: { “_index”: “test_index”, “_typ
ElasticSearch最佳入門實踐(十一)分散式原理 橫向擴容過程,如何超出擴容極限,以及如何提升容錯性
(1)primary&replica自動負載均衡,6個shard,3 primary,3 replica (2)每個node有更少的shard,IO/CPU/Memory資源給每個shard分配更多,每個shard效能更好 (3)擴容的極限,6個shard(3 prima
ElasticSearch最佳入門實踐(四十)分詞器的內部組成到底是什麼,以及內建分詞器的介紹
1、什麼是分詞器 一個分詞器,很重要,將一段文字進行各種處理,最後處理好的結果才會拿去建立倒排索引 切分詞語,normalization(提升recall召回率) 給你一段句子,然後將這段句子拆分成一個一個的單個的單詞,同時對每個單詞進行normalizat
ElasticSearch最佳入門實踐(三十)寫一致性原理以及quorum機制深入剖析
1、consistency,one(primary shard),all(all shard),quorum(default) 我們在傳送任何一個增刪改操作的時候,比如說put /index/type/id,都可以帶上一個consistency引數,指明我們想要的寫一致性是什
ElasticSearch最佳入門實踐(七十)優化寫入流程實現海量磁碟檔案合併(segment merge,optimize)
每秒一個segment file,檔案過多,而且每次search都要搜尋所有的segment,很耗時 預設會在後臺執行segment merge操作,在merge的時候,被標記為deleted的document也會被徹底物理刪除 每次merge
ElasticSearch最佳入門實踐(五十)組合查詢
1、例子 GET /website/article/_search { "query": { "bool": { "must": [ { "match": { "title": "elasticsea
ElasticSearch最佳入門實踐(六十)建立、修改以及刪除索引
1、建立索引 建立索引的語法 PUT /my_index { "settings": { ... any settings ... }, "mappings": { "type_one": { ... any mappings ...
ElasticSearch最佳入門實踐(四十二)什麼是mapping再次回爐透徹理解
(1)往es裡面直接插入資料,es會自動建立索引,同時建立type以及對應的mapping (2)mapping中就自動定義了每個field的資料型別 (3)不同的資料型別(比如說text和date),可能有的是exact value,有的是full text (4)exac
ElasticSearch最佳入門實踐(三十二)bulk api的奇特json格式與底層效能優化關係揭祕
1、bulk api奇特的json格式 {"action": {"meta"}}\n {"data"}\n {"action": {"meta"}}\n {"data"}\n 2、bulk中的每個操作都可能要轉發到不同的node的shard去執行 3、如果採用比較良好的js