## Elasticsearch * [1.为ä»ä¹è¦ä½¿ç¨Elasticsearch?](#1为ä»ä¹è¦ä½¿ç¨elasticsearch) * [2.Elasticsearchæ¯å¦ä½å®ç°Masteré举çï¼](#2elasticsearchæ¯å¦ä½å®ç°masteré举ç) * [3.Elasticsearchä¸çèç¹ï¼æ¯å¦å ±20个ï¼ï¼å ¶ä¸ç10个éäºä¸ä¸ªmasterï¼å¦å¤10个éäºå¦ä¸ä¸ªmasterï¼æä¹åï¼](#3elasticsearchä¸çèç¹æ¯å¦å ±20ä¸ªå ¶ä¸ç10个éäºä¸ä¸ªmasterå¦å¤10个éäºå¦ä¸ä¸ªmasteræä¹å) * [4.è¯¦ç»æè¿°ä¸ä¸Elasticsearchç´¢å¼ææ¡£çè¿ç¨ã](#4è¯¦ç»æè¿°ä¸ä¸elasticsearchç´¢å¼ææ¡£çè¿ç¨) * [5.è¯¦ç»æè¿°ä¸ä¸Elasticsearchæ´æ°åå é¤ææ¡£çè¿ç¨](#5è¯¦ç»æè¿°ä¸ä¸elasticsearchæ´æ°åå é¤ææ¡£çè¿ç¨) * [6.è¯¦ç»æè¿°ä¸ä¸Elasticsearchæç´¢çè¿ç¨](#6è¯¦ç»æè¿°ä¸ä¸elasticsearchæç´¢çè¿ç¨) * [7.Elasticsearch对äºå¤§æ°æ®éï¼ä¸äº¿é级ï¼çèåå¦ä½å®ç°ï¼](#7elasticsearch对äºå¤§æ°æ®éä¸äº¿é级çèåå¦ä½å®ç°) * [8.å¨å¹¶åæ åµä¸ï¼Elasticsearch妿ä¿è¯è¯»åä¸è´ï¼](#8å¨å¹¶åæ åµä¸elasticsearch妿ä¿è¯è¯»åä¸è´) * [9.ElasticSearchä¸çé群ãèç¹ãç´¢å¼ãææ¡£ãç±»åæ¯ä»ä¹ï¼](#9elasticsearchä¸çé群èç¹ç´¢å¼ææ¡£ç±»åæ¯ä»ä¹) * [10.ElasticSearchä¸çåçæ¯ä»ä¹?](#10elasticsearchä¸çåçæ¯ä»ä¹) * [11.ä»ä¹æ¯ElasticSearchï¼](#11ä»ä¹æ¯elasticsearch) * [12.Elasticsearchä¸çåæç´¢å¼æ¯ä»ä¹ï¼](#12elasticsearchä¸çåæç´¢å¼æ¯ä»ä¹) * [13.Elasticsearchä¸çåæå¨æ¯ä»ä¹ï¼](#13elasticsearchä¸çåæå¨æ¯ä»ä¹) * [14.说说Elasticsearch常ç¨çè°ä¼ææ®µï¼](#14说说elasticsearch常ç¨çè°ä¼ææ®µ) * [15.Elasticsearch å¨é¨ç½²æ¶ï¼å¯¹ Linux ç设置æåªäºä¼åæ¹æ³ï¼](#15elasticsearch-å¨é¨ç½²æ¶å¯¹-linux-ç设置æåªäºä¼åæ¹æ³) * [16.客æ·ç«¯å¨åéç¾¤è¿æ¥æ¶ï¼å¦ä½éæ©ç¹å®çèç¹æ§è¡è¯·æ±ï¼](#16客æ·ç«¯å¨åéç¾¤è¿æ¥æ¶å¦ä½éæ©ç¹å®çèç¹æ§è¡è¯·æ±) * [17.å¨ Elasticsearch ä¸ï¼æ¯æä¹æ ¹æ®ä¸ä¸ªè¯æ¾å°å¯¹åºçåæç´¢å¼çï¼](#17å¨-elasticsearch-䏿¯æä¹æ ¹æ®ä¸ä¸ªè¯æ¾å°å¯¹åºçåæç´¢å¼ç) * [18.å¯¹äº GC æ¹é¢ï¼å¨ä½¿ç¨ Elasticsearch æ¶è¦æ³¨æä»ä¹ï¼](#18对äº-gc-æ¹é¢å¨ä½¿ç¨-elasticsearch-æ¶è¦æ³¨æä»ä¹) * [19.å¨å¹¶åæ åµä¸ï¼Elasticsearch 妿ä¿è¯è¯»åä¸è´ï¼](#19å¨å¹¶åæ åµä¸elasticsearch-妿ä¿è¯è¯»åä¸è´) * [20.å¦ä½çæ§ Elasticsearch éç¾¤ç¶æï¼](#20å¦ä½çæ§-elasticsearch-éç¾¤ç¶æ) #### 1.为ä»ä¹è¦ä½¿ç¨Elasticsearch? å ä¸ºå¨æä»¬çæ°æ®ï¼å°æ¥ä¼é常å¤ï¼æä»¥éç¨ä»¥å¾çæ¨¡ç³æ¥è¯¢ï¼æ¨¡ç³æ¥è¯¢åç½®é ç½®ï¼ä¼æ¾å¼ç´¢å¼ï¼å¯¼è´ååæ¥è¯¢æ¯å ¨è¡¨æ«é¢ï¼å¨ç¾ä¸çº§å«çæ°æ®åºä¸ï¼æçé常ä½ä¸ï¼èæä»¬ä½¿ç¨ESåä¸ä¸ªå ¨æç´¢å¼ï¼æä»¬å°ç»å¸¸æ¥è¯¢çååçæäºåæ®µï¼æ¯å¦è¯´åååï¼æè¿°ãä»·æ ¼è¿æidè¿äºå段æä»¬æ¾å ¥æä»¬ç´¢å¼åºéï¼å¯ä»¥æé«æ¥è¯¢é度ã #### 2.Elasticsearchæ¯å¦ä½å®ç°Masteré举çï¼ Elasticsearchçé主æ¯ZenDiscovery模åè´è´£çï¼ä¸»è¦å å«Pingï¼èç¹ä¹é´éè¿è¿ä¸ªRPCæ¥åç°å½¼æ¤ï¼åUnicastï¼åææ¨¡åå å«ä¸ä¸ªä¸»æºå表以æ§å¶åªäºèç¹éè¦pingéï¼è¿ä¸¤é¨åï¼ å¯¹ææå¯ä»¥æä¸ºmasterçèç¹ï¼node.master: trueï¼æ ¹æ®nodeIdåå ¸æåºï¼æ¯æ¬¡é举æ¯ä¸ªèç¹é½æèªå·±æç¥éèç¹æä¸æ¬¡åºï¼ç¶åéåºç¬¬ä¸ä¸ªï¼ç¬¬0ä½ï¼èç¹ï¼æä¸è®¤ä¸ºå®æ¯masterèç¹ã 妿坹æä¸ªèç¹çæç¥¨æ°è¾¾å°ä¸å®çå¼ï¼å¯ä»¥æä¸ºmasterèç¹æ°n/2+1ï¼å¹¶ä¸è¯¥èç¹èªå·±ä¹é举èªå·±ï¼é£è¿ä¸ªèç¹å°±æ¯masterãå¦åéæ°é举ä¸ç´å°æ»¡è¶³ä¸è¿°æ¡ä»¶ã è¡¥å ï¼masterèç¹çè责主è¦å æ¬é群ãèç¹åç´¢å¼ç管çï¼ä¸è´è´£ææ¡£çº§å«ç管çï¼dataèç¹å¯ä»¥å ³éhttpåè½ã #### 3.Elasticsearchä¸çèç¹ï¼æ¯å¦å ±20个ï¼ï¼å ¶ä¸ç10个éäºä¸ä¸ªmasterï¼å¦å¤10个éäºå¦ä¸ä¸ªmasterï¼æä¹åï¼ å½é群masteråéæ°éä¸å°äº3个æ¶ï¼å¯ä»¥éè¿è®¾ç½®æå°æç¥¨éè¿æ°éï¼discovery.zen.minimum_master_nodesï¼è¶ è¿ææåéèç¹ä¸å以䏿¥è§£å³èè£é®é¢ï¼ å½åéæ°é为两个æ¶ï¼åªè½ä¿®æ¹ä¸ºå¯ä¸çä¸ä¸ªmasteråéï¼å ¶ä»ä½ä¸ºdataèç¹ï¼é¿å èè£é®é¢ã #### 4.è¯¦ç»æè¿°ä¸ä¸Elasticsearchç´¢å¼ææ¡£çè¿ç¨ã åè°èç¹é»è®¤ä½¿ç¨ææ¡£IDåä¸è®¡ç®ï¼ä¹æ¯æéè¿routingï¼ï¼ä»¥ä¾¿ä¸ºè·¯ç±æä¾åéçåçã shard = hash(document_id) % (num_of_primary_shards) å½åçæå¨çèç¹æ¥æ¶å°æ¥èªåè°èç¹ç请æ±åï¼ä¼å°è¯·æ±åå ¥å°Memory Bufferï¼ç¶å宿¶ï¼é»è®¤æ¯æ¯é1ç§ï¼åå ¥å°Filesystem Cacheï¼è¿ä¸ªä»Momery Bufferå°Filesystem ããCacheçè¿ç¨å°±å«årefreshï¼ å½ç¶å¨æäºæ åµä¸ï¼åå¨Momery BufferåFilesystem Cacheçæ°æ®å¯è½ä¼ä¸¢å¤±ï¼ESæ¯éè¿translogçæºå¶æ¥ä¿è¯æ°æ®çå¯é æ§çãå ¶å®ç°æºå¶æ¯æ¥æ¶å°è¯·æ±åï¼åæ¶ä¹ä¼åå ¥å°translogä¸ï¼å½Filesystem cacheä¸çæ°æ®åå ¥å°ç£ç䏿¶ï¼æä¼æ¸ 餿ï¼è¿ä¸ªè¿ç¨å«åflushï¼ å¨flushè¿ç¨ä¸ï¼å åä¸çç¼å²å°è¢«æ¸ é¤ï¼å 容被åå ¥ä¸ä¸ªæ°æ®µï¼æ®µçfsyncå°å建ä¸ä¸ªæ°çæäº¤ç¹ï¼å¹¶å°å 容巿°å°ç£çï¼æ§çtranslogå°è¢«å é¤å¹¶å¼å§ä¸ä¸ªæ°çtranslogã flush触åçæ¶æºæ¯å®æ¶è§¦åï¼é»è®¤30åéï¼æè translogåå¾å¤ªå¤§ï¼é»è®¤ä¸º512Mï¼æ¶ï¼ #### 5.è¯¦ç»æè¿°ä¸ä¸Elasticsearchæ´æ°åå é¤ææ¡£çè¿ç¨ å é¤åæ´æ°ä¹é½æ¯åæä½ï¼ä½æ¯Elasticsearchä¸çææ¡£æ¯ä¸å¯åçï¼å æ¤ä¸è½è¢«å é¤æè æ¹å¨ä»¥å±ç¤ºå ¶åæ´ï¼ ç£çä¸çæ¯ä¸ªæ®µé½æä¸ä¸ªç¸åºç.delæä»¶ãå½å é¤è¯·æ±åéåï¼ææ¡£å¹¶æ²¡æçç被å é¤ï¼èæ¯å¨.delæä»¶ä¸è¢«æ 记为å é¤ãè¯¥ææ¡£ä¾ç¶è½å¹é æ¥è¯¢ï¼ä½æ¯ä¼å¨ç»æä¸è¢«è¿æ»¤æã彿®µåå¹¶æ¶ï¼å¨.delæä»¶ä¸è¢«æ 记为å é¤çææ¡£å°ä¸ä¼è¢«åå ¥æ°æ®µã 卿°çææ¡£è¢«å建æ¶ï¼Elasticsearchä¼ä¸ºè¯¥ææ¡£æå®ä¸ä¸ªçæ¬å·ï¼å½æ§è¡æ´æ°æ¶ï¼æ§çæ¬çææ¡£å¨.delæä»¶ä¸è¢«æ 记为å é¤ï¼æ°çæ¬çææ¡£è¢«ç´¢å¼å°ä¸ä¸ªæ°æ®µãæ§çæ¬çææ¡£ä¾ç¶è½å¹é æ¥è¯¢ï¼ä½æ¯ä¼å¨ç»æä¸è¢«è¿æ»¤æã #### 6.è¯¦ç»æè¿°ä¸ä¸Elasticsearchæç´¢çè¿ç¨ æç´¢è¢«æ§è¡æä¸ä¸ªä¸¤é¶æ®µè¿ç¨ï¼æä»¬ç§°ä¹ä¸º Query Then Fetchï¼ å¨åå§æ¥è¯¢é¶æ®µæ¶ï¼æ¥è¯¢ä¼å¹¿æå°ç´¢å¼ä¸æ¯ä¸ä¸ªåçæ·è´ï¼ä¸»åçæè 坿¬åçï¼ã æ¯ä¸ªåç卿¬å°æ§è¡æç´¢å¹¶æå»ºä¸ä¸ªå¹é ææ¡£ç大å°ä¸º from + size çä¼å éåãPSï¼å¨æç´¢çæ¶åæ¯ä¼æ¥è¯¢Filesystem Cacheçï¼ä½æ¯æé¨åæ°æ®è¿å¨Memory Bufferï¼æä»¥æç´¢æ¯è¿å®æ¶çã æ¯ä¸ªåçè¿ååèªä¼å éåä¸ ææææ¡£ç ID åæåºå¼ ç»åè°èç¹ï¼å®åå¹¶è¿äºå¼å°èªå·±çä¼å éå䏿¥äº§çä¸ä¸ªå ¨å±æåºåçç»æåè¡¨ã æ¥ä¸æ¥å°±æ¯ ååé¶æ®µï¼åè°èç¹è¾¨å«åºåªäºææ¡£éè¦è¢«ååå¹¶åç¸å ³çåçæäº¤å¤ä¸ª GET 请æ±ãæ¯ä¸ªåçå 载并 ä¸°å¯ ææ¡£ï¼å¦ææéè¦çè¯ï¼æ¥çè¿åææ¡£ç»åè°èç¹ã䏿¦ææçææ¡£é½è¢«ååäºï¼åè°èç¹è¿åç»æç»å®¢æ·ç«¯ã è¡¥å ï¼Query Then Fetchçæç´¢ç±»åå¨ææ¡£ç¸å ³æ§æåçæ¶ååèçæ¯æ¬åççæ°æ®ï¼è¿æ ·å¨ææ¡£æ°éè¾å°çæ¶åå¯è½ä¸å¤åç¡®ï¼DFS Query Then Fetchå¢å äºä¸ä¸ªé¢æ¥è¯¢çå¤çï¼è¯¢é®TermåDocument frequencyï¼è¿ä¸ªè¯åæ´åç¡®ï¼ä½æ¯æ§è½ä¼åå·®ã #### 7.Elasticsearch对äºå¤§æ°æ®éï¼ä¸äº¿é级ï¼çèåå¦ä½å®ç°ï¼ Elasticsearch æä¾çé¦ä¸ªè¿ä¼¼è忝cardinality 度éã宿ä¾ä¸ä¸ªå段çåºæ°ï¼å³è¯¥å段çdistinctæè uniqueå¼çæ°ç®ã宿¯åºäºHLLç®æ³çãHLL ä¼å 对æä»¬çè¾å ¥ä½åå¸è¿ç®ï¼ç¶åæ ¹æ®åå¸è¿ç®çç»æä¸ç bits 忦çä¼°ç®ä»èå¾å°åºæ°ãå ¶ç¹ç¹æ¯ï¼å¯é ç½®ç精度ï¼ç¨æ¥æ§å¶å åç使ç¨ï¼æ´ç²¾ç¡® ï¼ æ´å¤å åï¼ï¼å°çæ°æ®é精度æ¯é常é«çï¼æä»¬å¯ä»¥éè¿é ç½®åæ°ï¼æ¥è®¾ç½®å»ééè¦çåºå®å å使ç¨éãæ è®ºæ°åè¿æ¯æ°å亿çå¯ä¸å¼ï¼å å使ç¨éåªä¸ä½ é ç½®ç精确度ç¸å ³ ã #### 8.å¨å¹¶åæ åµä¸ï¼Elasticsearch妿ä¿è¯è¯»åä¸è´ï¼ å¯ä»¥éè¿çæ¬å·ä½¿ç¨ä¹è§å¹¶åæ§å¶ï¼ä»¥ç¡®ä¿æ°çæ¬ä¸ä¼è¢«æ§çæ¬è¦çï¼ç±åºç¨å±æ¥å¤çå ·ä½çå²çªï¼ å¦å¤å¯¹äºåæä½ï¼ä¸è´æ§çº§å«æ¯æquorum/one/allï¼é»è®¤ä¸ºquorumï¼å³åªæå½å¤§å¤æ°åçå¯ç¨æ¶æå 许åæä½ãä½å³ä½¿å¤§å¤æ°å¯ç¨ï¼ä¹å¯è½åå¨å 为ç½ç»çåå 导è´åå ¥å¯æ¬å¤±è´¥ï¼è¿æ ·è¯¥å¯æ¬è¢«è®¤ä¸ºæ éï¼åçå°ä¼å¨ä¸ä¸ªä¸åçèç¹ä¸é建ã 对äºè¯»æä½ï¼å¯ä»¥è®¾ç½®replication为sync(é»è®¤)ï¼è¿ä½¿å¾æä½å¨ä¸»åçå坿¬åçé½å®æåæä¼è¿åï¼å¦æè®¾ç½®replication为asyncæ¶ï¼ä¹å¯ä»¥éè¿è®¾ç½®æç´¢è¯·æ±åæ°_preference为primaryæ¥æ¥è¯¢ä¸»åçï¼ç¡®ä¿ææ¡£æ¯ææ°çæ¬ã #### 9.ElasticSearchä¸çé群ãèç¹ãç´¢å¼ãææ¡£ãç±»åæ¯ä»ä¹ï¼ ç¾¤éæ¯ä¸ä¸ªæå¤ä¸ªèç¹ï¼æå¡å¨ï¼çéåï¼å®ä»¬å ±åä¿åæ¨çæ´ä¸ªæ°æ®ï¼å¹¶æä¾è·¨ææèç¹çèåç´¢å¼åæç´¢åè½ã群éç±å¯ä¸åç§°æ è¯ï¼é»è®¤æ åµä¸ä¸ºâelasticsearchâãæ¤åç§°å¾éè¦ï¼å ä¸ºå¦æèç¹è®¾ç½®ä¸ºæåç§°å å ¥ç¾¤éï¼å该èç¹åªè½æ¯ç¾¤éçä¸é¨åã èç¹æ¯å±äºé群ä¸é¨åçå个æå¡å¨ãå®å卿°æ®å¹¶åä¸ç¾¤éç´¢å¼åæç´¢åè½ã ç´¢å¼å°±åå ³ç³»æ°æ®åºä¸çâæ°æ®åºâã宿ä¸ä¸ªå®ä¹å¤ç§ç±»åçæ å°ãç´¢å¼æ¯é»è¾å称空é´ï¼æ å°å°ä¸ä¸ªæå¤ä¸ªä¸»åçï¼å¹¶ä¸å¯ä»¥æé¶ä¸ªæå¤ä¸ªå¯æ¬åçã MySQL =>æ°æ®åºï¼ElasticSearch =>ç´¢å¼ã ææ¡£ç±»ä¼¼äºå ³ç³»æ°æ®åºä¸çä¸è¡ãä¸åä¹å¤å¨äºç´¢å¼ä¸çæ¯ä¸ªææ¡£å¯ä»¥å ·æä¸åçç»æï¼å段ï¼ï¼ä½æ¯å¯¹äºéç¨å段åºè¯¥å ·æç¸åçæ°æ®ç±»åã MySQL => Databases =>Tables => Columns / Rowsï¼ ElasticSearch => Indices => Types =>å ·æå±æ§çææ¡£ã ç±»åæ¯ç´¢å¼çé»è¾ç±»å«/ååºï¼å ¶è¯ä¹å®å ¨åå³äºç¨æ·ã #### 10.ElasticSearchä¸çåçæ¯ä»ä¹? å¨å¤§å¤æ°ç¯å¢ä¸ï¼æ¯ä¸ªèç¹é½å¨åç¬ççåæèææºä¸è¿è¡ã ç´¢å¼ - å¨Elasticsearchä¸ï¼ç´¢å¼æ¯ææ¡£çéåã åç -å 为Elasticsearchæ¯ä¸ä¸ªåå¸å¼æç´¢å¼æï¼æä»¥ç´¢å¼é常被å岿åå¸å¨å¤ä¸ªèç¹ä¸ç被称为åççå ç´ ã #### 11.ä»ä¹æ¯ElasticSearchï¼ Elasticsearchæ¯ä¸ä¸ªåºäºLuceneçæç´¢å¼æã宿ä¾äºå ·æHTTP Webçé¢åæ æ¶æJSONææ¡£çåå¸å¼ï¼å¤ç§æ·è½åçå ¨ææç´¢å¼æãElasticsearchæ¯ç¨Javaå¼åçï¼æ ¹æ®Apacheè®¸å¯æ¡æ¬¾ä½ä¸ºå¼æºåå¸ã #### 12.Elasticsearchä¸çåæç´¢å¼æ¯ä»ä¹ï¼ åæç´¢å¼æ¯æç´¢å¼æçæ ¸å¿ãæç´¢å¼æç主è¦ç®æ æ¯å¨æ¥æ¾åçæç´¢æ¡ä»¶çææ¡£æ¶æä¾å¿«éæç´¢ãåæç´¢å¼æ¯ä¸ç§åæ°æ®ç»æä¸æ ·çæ£åå¾ï¼å¯å°ç¨æ·ä»åè¯å¯¼åææ¡£æç½é¡µã宿¯æç´¢å¼æçæ ¸å¿ãå ¶ä¸»è¦ç®æ æ¯å¿«éæç´¢ä»æ°ç¾ä¸æä»¶ä¸æ¥æ¾æ°æ®ã #### 13.Elasticsearchä¸çåæå¨æ¯ä»ä¹ï¼ å¨ElasticSearchä¸ç´¢å¼æ°æ®æ¶ï¼æ°æ®ç±ä¸ºç´¢å¼å®ä¹çAnalyzerå¨å é¨è¿è¡è½¬æ¢ã åæå¨ç±ä¸ä¸ªTokenizeråé¶ä¸ªæå¤ä¸ªTokenFilterç»æãç¼è¯å¨å¯ä»¥å¨ä¸ä¸ªæå¤ä¸ªCharFilterä¹åãåææ¨¡åå 许æ¨å¨é»è¾åç§°ä¸æ³¨ååæå¨ï¼ç¶åå¯ä»¥å¨æ å°å®ä¹ææäºAPIä¸å¼ç¨å®ä»¬ã Elasticsearché带äºè®¸å¤å¯ä»¥éæ¶ä½¿ç¨çé¢å»ºåæå¨ãæè ï¼æ¨å¯ä»¥ç»åå ç½®çåç¬¦è¿æ»¤å¨ï¼ç¼è¯å¨åè¿æ»¤å¨å¨æ¥å建èªå®ä¹åæå¨ã #### 14.说说Elasticsearch常ç¨çè°ä¼ææ®µï¼ è®¾è®¡é¶æ®µè°ä¼ ï¼1ï¼æ ¹æ®ä¸å¡å¢ééæ±ï¼éååºäºæ¥ææ¨¡æ¿å建索å¼ï¼éè¿ roll over API æ»å¨ç´¢å¼ï¼ ï¼2ï¼ä½¿ç¨å«åè¿è¡ç´¢å¼ç®¡çï¼ ï¼3ï¼æ¯å¤©åæ¨å®æ¶å¯¹ç´¢å¼å force_merge æä½ï¼ä»¥éæ¾ç©ºé´ï¼ ï¼4ï¼éåå·çå离æºå¶ï¼çæ°æ®åå¨å° SSDï¼æé«æ£ç´¢æçï¼å·æ°æ®å®æè¿è¡ shrinkæä½ï¼ä»¥ç¼©ååå¨ï¼ ï¼5ï¼éå curator è¿è¡ç´¢å¼ççå½å¨æç®¡çï¼ ï¼6ï¼ä» é对éè¦åè¯çåæ®µï¼åçç设置åè¯å¨ï¼ ï¼7ï¼Mapping é¶æ®µå åç»ååä¸ªåæ®µç屿§ï¼æ¯å¦éè¦æ£ç´¢ãæ¯å¦éè¦åå¨çãâ¦â¦.. åå ¥è°ä¼ ï¼1ï¼åå ¥å坿¬æ°è®¾ç½®ä¸º 0ï¼ ï¼2ï¼åå ¥åå ³é refresh_interval 设置为-1ï¼ç¦ç¨å·æ°æºå¶ï¼ ï¼3ï¼åå ¥è¿ç¨ä¸ï¼éå bulk æ¹éåå ¥ï¼ ï¼4ï¼åå ¥åæ¢å¤å¯æ¬æ°åå·æ°é´éï¼ ï¼5ï¼å°½é使ç¨èªå¨çæç idã æ¥è¯¢è°ä¼ ï¼1ï¼ç¦ç¨ wildcardï¼ ï¼2ï¼ç¦ç¨æ¹é termsï¼æç¾ä¸åçåºæ¯ï¼ï¼ ï¼3ï¼å åå©ç¨åæç´¢å¼æºå¶ï¼è½ keyword ç±»åå°½é keywordï¼ ï¼4ï¼æ°æ®é大æ¶åï¼å¯ä»¥å åºäºæ¶é´æ²å®ç´¢å¼åæ£ç´¢ï¼ ï¼5ï¼è®¾ç½®åççè·¯ç±æºå¶ã å ¶ä»è°ä¼ é¨ç½²è°ä¼ï¼ä¸å¡è°ä¼çã ä¸é¢çæåä¸é¨åï¼é¢è¯è å°±åºæ¬å¯¹ä½ ä¹åçå®è·µæè è¿ç»´ç»éªææè¯ä¼°äºã #### 15.Elasticsearch å¨é¨ç½²æ¶ï¼å¯¹ Linux ç设置æåªäºä¼åæ¹æ³ï¼ ï¼1ï¼64 GB å åçæºå¨æ¯éå¸¸çæ³çï¼ ä½æ¯ 32 GB å 16 GB æºå¨ä¹æ¯å¾å¸¸è§çãå°äº 8 GB ä¼éå¾å ¶åã ï¼2ï¼å¦æä½ è¦å¨æ´å¿«ç CPUs åæ´å¤çæ ¸å¿ä¹é´éæ©ï¼éæ©æ´å¤çæ ¸å¿æ´å¥½ãå¤ä¸ªå æ ¸æä¾çé¢å¤å¹¶åè¿èè¿ç¨å¾®å¿«ä¸ç¹ç¹çæ¶éé¢çã ï¼3ï¼å¦æä½ è´æ å¾èµ· SSDï¼å®å°è¿è¿è¶ åºä»»ä½æè½¬ä»è´¨ã åºäº SSD çèç¹ï¼æ¥è¯¢åç´¢å¼æ§è½é½ææåãå¦æä½ è´æ å¾èµ·ï¼SSD æ¯ä¸ä¸ªå¥½çéæ©ã ï¼4ï¼å³ä½¿æ°æ®ä¸å¿ä»¬è¿å¨å«å°ºï¼ä¹è¦é¿å é群跨è¶å¤ä¸ªæ°æ®ä¸å¿ãç»å¯¹è¦é¿å é群跨è¶å¤§çå°çè·ç¦»ã ï¼5ï¼è¯·ç¡®ä¿è¿è¡ä½ åºç¨ç¨åºç JVM åæå¡å¨ç JVM æ¯å®å ¨ä¸æ ·çã å¨Elasticsearch çå ä¸ªå°æ¹ï¼ä½¿ç¨ Java çæ¬å°åºååã ï¼6ï¼éè¿è®¾ç½® gateway.recover_after_nodesãgateway.expected_nodesãgateway.recover_after_time å¯ä»¥å¨é群éå¯çæ¶åé¿å è¿å¤çåç交æ¢ï¼è¿å¯è½ä¼è®©æ°æ®æ¢å¤ä»æ°ä¸ªå°æ¶ç¼©ç为å ç§éã ï¼7ï¼Elasticsearch é»è®¤è¢«é 置为使ç¨åæåç°ï¼ä»¥é²æ¢èç¹æ æä¸å å ¥é群ãåªæå¨åä¸å°æºå¨ä¸è¿è¡çèç¹æä¼èªå¨ç»æé群ãæå¥½ä½¿ç¨åæä»£æ¿ç»æã ï¼8ï¼ä¸è¦éæä¿®æ¹åå¾åæ¶å¨ï¼CMSï¼ååä¸ªçº¿ç¨æ± ç大å°ã ï¼9ï¼æä½ çå åçï¼å°äºï¼ä¸åç» Luceneï¼ä½ä¸è¦è¶ è¿ 32 GBï¼ï¼ï¼éè¿ES_HEAP_SIZE ç¯å¢åé设置ã ï¼10ï¼å å交æ¢å°ç£ç对æå¡å¨æ§è½æ¥è¯´æ¯è´å½çã妿å å交æ¢å°ç£çä¸ï¼ä¸ä¸ª100 å¾®ç§çæä½å¯è½åæ 10 毫ç§ã åæ³æ³é£ä¹å¤ 10 å¾®ç§çæä½æ¶å»¶ç´¯å èµ·æ¥ã ä¸é¾çåº swapping å¯¹äºæ§è½æ¯å¤ä¹å¯æã ï¼11ï¼Lucene 使ç¨äºå¤§ é çæä»¶ãåæ¶ï¼Elasticsearch å¨èç¹å HTTP 客æ·ç«¯ä¹é´è¿è¡éä¿¡ä¹ä½¿ç¨äºå¤§éç奿¥åã ææè¿ä¸åé½éè¦è¶³å¤çæä»¶æè¿°ç¬¦ãä½ åºè¯¥å¢å ä½ çæä»¶æè¿°ç¬¦ï¼è®¾ç½®ä¸ä¸ªå¾å¤§çå¼ï¼å¦ 64,000ã #### 16.客æ·ç«¯å¨åéç¾¤è¿æ¥æ¶ï¼å¦ä½éæ©ç¹å®çèç¹æ§è¡è¯·æ±ï¼ TransportClient å©ç¨ transport 模åè¿ç¨è¿æ¥ä¸ä¸ª elasticsearch é群ãå®å¹¶ä¸å å ¥å°é群ä¸ï¼åªæ¯ç®åçè·å¾ä¸ä¸ªæè å¤ä¸ªåå§åç transport å°åï¼å¹¶ä»¥ 轮询 çæ¹å¼ä¸è¿äºå°åè¿è¡éä¿¡ã #### 17.å¨ Elasticsearch ä¸ï¼æ¯æä¹æ ¹æ®ä¸ä¸ªè¯æ¾å°å¯¹åºçåæç´¢å¼çï¼ ï¼1ï¼Luceneçç´¢å¼è¿ç¨ï¼å°±æ¯æç §å ¨ææ£ç´¢çåºæ¬è¿ç¨ï¼å°åæè¡¨åææ¤æä»¶æ ¼å¼çè¿ç¨ã ï¼2ï¼Luceneçæç´¢è¿ç¨ï¼å°±æ¯æç §æ¤æä»¶æ ¼å¼å°ç´¢å¼è¿å»çä¿¡æ¯è¯»åºæ¥ï¼ç¶åè®¡ç®æ¯ç¯ææ¡£æå(score)çè¿ç¨ã #### 18.å¯¹äº GC æ¹é¢ï¼å¨ä½¿ç¨ Elasticsearch æ¶è¦æ³¨æä»ä¹ï¼ ï¼1ï¼åæè¯å ¸çç´¢å¼éè¦å¸¸é©»å åï¼æ æ³ GCï¼éè¦çæ§ data node ä¸ segmentmemory å¢é¿è¶å¿ã ï¼2ï¼åç±»ç¼åï¼field cache, filter cache, indexing cache, bulk queue ççï¼è¦è®¾ç½®åçç大å°ï¼å¹¶ä¸è¦åºè¯¥æ ¹æ®æåçæ åµæ¥ç heap æ¯å¦å¤ç¨ï¼ä¹å°±æ¯åç±»ç¼åå ¨é¨å æ»¡çæ¶åï¼è¿æ heap 空é´å¯ä»¥åé ç»å ¶ä»ä»»å¡åï¼é¿å éç¨ clear cacheçâèªæ¬ºæ¬ºäººâçæ¹å¼æ¥éæ¾å åã ï¼3ï¼é¿å è¿å大éç»æéçæç´¢ä¸èåãç¡®å®éè¦å¤§éæåæ°æ®çåºæ¯ï¼å¯ä»¥éç¨scan & scroll api æ¥å®ç°ã ï¼4ï¼cluster stats é©»çå åå¹¶æ æ³æ°´å¹³æ©å±ï¼è¶ å¤§è§æ¨¡é群å¯ä»¥èèåææå¤ä¸ªé群éè¿ tribe node è¿æ¥ã ï¼5ï¼æ³ç¥é heap å¤ä¸å¤ï¼å¿ é¡»ç»åå®é åºç¨åºæ¯ï¼å¹¶å¯¹é群ç heap ä½¿ç¨æ åµåæç»ççæ§ã ï¼6ï¼æ ¹æ®çæ§æ°æ®çè§£å åéæ±ï¼åçé ç½®åç±»circuit breakerï¼å°å åæº¢åºé£é©éä½å°æä½ #### 19.å¨å¹¶åæ åµä¸ï¼Elasticsearch 妿ä¿è¯è¯»åä¸è´ï¼ ï¼1ï¼å¯ä»¥éè¿çæ¬å·ä½¿ç¨ä¹è§å¹¶åæ§å¶ï¼ä»¥ç¡®ä¿æ°çæ¬ä¸ä¼è¢«æ§çæ¬è¦çï¼ç±åºç¨å±æ¥å¤çå ·ä½çå²çªï¼ ï¼2ï¼å¦å¤å¯¹äºåæä½ï¼ä¸è´æ§çº§å«æ¯æ quorum/one/allï¼é»è®¤ä¸º quorumï¼å³åªæå½å¤§å¤æ°åçå¯ç¨æ¶æå 许åæä½ãä½å³ä½¿å¤§å¤æ°å¯ç¨ï¼ä¹å¯è½åå¨å 为ç½ç»çåå 导è´åå ¥å¯æ¬å¤±è´¥ï¼è¿æ ·è¯¥å¯æ¬è¢«è®¤ä¸ºæ éï¼åçå°ä¼å¨ä¸ä¸ªä¸åçèç¹ä¸é建ã ï¼3ï¼å¯¹äºè¯»æä½ï¼å¯ä»¥è®¾ç½® replication 为 sync(é»è®¤)ï¼è¿ä½¿å¾æä½å¨ä¸»åçå坿¬åçé½å®æåæä¼è¿åï¼å¦æè®¾ç½® replication 为 async æ¶ï¼ä¹å¯ä»¥éè¿è®¾ç½®æç´¢è¯·æ±åæ°_preference 为 primary æ¥æ¥è¯¢ä¸»åçï¼ç¡®ä¿ææ¡£æ¯ææ°çæ¬ã #### 20.å¦ä½çæ§ Elasticsearch éç¾¤ç¶æï¼ Marvel è®©ä½ å¯ä»¥å¾ç®åçéè¿ Kibana çæ§ Elasticsearchãä½ å¯ä»¥å®æ¶æ¥çä½ çé群å¥åº·ç¶æåæ§è½ï¼ä¹å¯ä»¥åæè¿å»çé群ãç´¢å¼åèç¹ææ ã #### #### åè龿¥ https://www.cnblogs.com/heqiyoujing/p/11146178.html https://www.cnblogs.com/zhuifeng523/p/12103350.html