欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Elasticsearch搜索調(diào)優(yōu)權(quán)威指南(2/3)-創(chuàng)新互聯(lián)

本文首發(fā)于 vivo互聯(lián)網(wǎng)技術(shù) 微信公眾號
英文原文:https://qbox.io/blog/elasticsearch-search-tuning-part-2
作者:Adam Vanderbush
譯者:楊振濤

我們提供的服務(wù)有:成都網(wǎng)站制作、網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、確山ssl等。為成百上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學管理、有技術(shù)的確山網(wǎng)站制作公司

目錄

  1. 預(yù)索引數(shù)據(jù)
  2. 映射
  3. 避免使用腳本
  4. 強制合并只讀索引

Elasticsearch搜索調(diào)優(yōu)權(quán)威指南,是QBOX在其博客上發(fā)布的系列文章之一,本文是該系列的第二篇,主要介紹了索引預(yù)處理、mapping建立、避免腳本的使用、索引段合并等搜索性能相關(guān)的調(diào)優(yōu)方法。

本文是Elasticsearch搜索調(diào)優(yōu)系列文章3篇中的第2篇,第1篇參考這里(點擊)。本系列教程旨在更進一步討論針對Elasticsearch 5.0及以上版本的搜索調(diào)優(yōu)技術(shù)、策略及建議。

1.預(yù)索引數(shù)據(jù)

為了優(yōu)化數(shù)據(jù)的索引方式,應(yīng)當在查詢中預(yù)置一些模式。比如,如果所有文檔都有一個叫 price 的價格字段,并且大部分查詢在一個固定范圍列表上執(zhí)行 range 聚合,那么就可以通過預(yù)索引范圍到索引中并使用一個 terms 聚合,來加速該聚合。

比如有如下文檔:

curl -XPUT 'ES_HOST:ES_PORT/index/type/1
?pretty' -H 'Content-Type: application/json' -d '{
 "designation": "bowl",
 "price": 13
}'

以及如下搜索請求:

curl -XGET 'ES_HOST:ES_PORT/index/_search
?pretty' -H 'Content-Type: application/json' -d '{
 "aggs": {
   "price_ranges": {
     "range": {
       "field": "price",
       "ranges": [
         { "to": 10 },
         { "from": 10, "to": 100 },
         { "from": 100 }
       ]
     }
   }
 }
}'

然后就可以在索引階段增加一個 price_range 字段,該字段應(yīng)該映射為一個關(guān)鍵字:

curl -XPUT 'ES_HOST:ES_PORT/index
?pretty' -H 'Content-Type: application/json' -d '{
 "mappings": {
   "type": {
     "properties": {
       "price_range": {
         "type": "keyword"
       }
     }
   }
 }
}'

curl -XPUT 'ES_HOST:ES_PORT/index/type/1
?pretty' -H 'Content-Type: application/json' -d '{
 "designation": "bowl",
 "price": 13,
 "price_range": "10-100"
}'

接下來搜索請求就能聚合這個新的字段,而不是在?price?字段上執(zhí)行一個范圍聚合。

curl -XGET 'ES_HOST:ES_PORT/index/_search
?pretty' -H 'Content-Type: application/json' -d '{
 "aggs": {
   "price_ranges": {
     "terms": {
       "field": "price_range"
     }
   }
 }
}'

2.映射

事實上,一些數(shù)值型的數(shù)據(jù),并不意味著總是要被映射為一個數(shù)值型字段。典型的,那些存儲為諸如?ISBN?之類的標識符,或者任何標識另一個數(shù)據(jù)庫中記錄的數(shù)字的字段,可能映射為關(guān)鍵字比映射為一個?integer?或?long?類型更好。

關(guān)鍵字類型用于索引結(jié)構(gòu)化內(nèi)容,比如?email?地址、主機名稱、狀態(tài)碼、郵政編碼或標簽。

典型地用于過濾(比如查找所有已發(fā)布的博客文章)、排序以及聚合。關(guān)鍵字字段只可通過其精確值搜索得到。

如果需要索引全文內(nèi)容比如?email?內(nèi)容或產(chǎn)品描述,可能就要使用一個文本字段。

下面是一個關(guān)鍵字字段映射的示例:

curl -XPUT 'ES_HOST:ES_PORT/my_index
?pretty' -H 'Content-Type: application/json' -d '{
 "mappings": {
   "my_type": {
     "properties": {
       "tags": {
         "type":  "keyword"
       }
     }
   }
 }
}'

從?2.x?版本導入的索引是不支持關(guān)鍵字的;相反,它們會試圖把?keyword?類型降級為?string?類型。這支持合并新的映射和舊的映射。長期存在的索引,必須在升級到6.x?版本前重建,但是映射降級提供了按自己的計劃實施重建的機會。

3.避免使用腳本

一般來說要盡量避免使用腳本;如果必須要使用,優(yōu)先選擇?Painless?和表達式引擎。

Painless?是一門簡單安全的腳本語言,專門為在?Elasticsearch?中使用而設(shè)計,是?Elasticsearch?的默認腳本語言,可安全地用于內(nèi)聯(lián)和存儲腳本。關(guān)于?Painless?語法和語言特性的更詳細描述,請參考?Painless?語言規(guī)范。

請參考 “?Painless Scripting in Elasticsearch?” 更深入地了解?Painless?腳本語言指南。

  • Lucene 表達式語言

Lucene?表達式會把一個?javascript?表達式編譯為字節(jié)碼,設(shè)計用于高性能自定義評級和排序函數(shù),并支持?inline?和默認的存儲腳本。

  • 性能

表達式相對于自定義?Lucene?代碼而言,有著更好的性能表現(xiàn);其性能相對其他腳本引擎有更低的單文檔成本:表達式更加“領(lǐng)先”。

這就允許非常快的執(zhí)行,尤其是比自己寫的本地腳本快很多。

  • 語法

表達式支持一個?ja**vascript**?語法子集:一個單獨的表達式。參見表達式模塊的文檔,了解支持的操作符和函數(shù)。

表達式腳本中可訪問的變量有:

  • 文檔字段,比如doc['myfield'].value

  • 字段所支持的變量和方法,比如doc['myfield'].empty

  • 傳遞到腳本里的參數(shù),比如mymodifier

  • 當前文檔得分,_score(僅在?script_score中使用時有效)

表達式腳本可以用于script_score、script_fields、排序腳本以及數(shù)值型聚合腳本,只要簡單地設(shè)置參數(shù)到表達式中即可。

4.強制合并只讀索引

只讀索引在合并為單一的段后將會非常受益。典型的情況是基于時間的索引:只有當前時間窗的索引會成為新文檔,同時舊索引成為只讀。

強制合并?API?支持通過?API?強制合并一個或更多的索引。合并與每個分片中?Lucene索引的段數(shù)量有關(guān)。強制合并操作支持通過合并來減少段數(shù)量。

該調(diào)用在合并完成之前將會處于阻塞狀態(tài)。如果?http?連接斷掉,請求將在后臺繼續(xù),在前一個強制合并完成之前,所有新請求將會阻塞。

curl _XPOST 'ES_HOST:ES_POST/twitter/_forcemer
ge?pretty'

強制合并?API?接受下列請求參數(shù):

  • max_num_segments?-?待合并的段數(shù)量。要完全合并索引,可設(shè)置為 1 。默認會簡單檢查一個合并是否需要執(zhí)行,如果是,就會執(zhí)行。

  • only_expunge_deletes?-合并流程是否僅僅擦除包含刪除的段。在?Lucene?中,一個文檔并不會從一個段直接刪除,只是標記為刪除。在一個段合并的過程中,一個新的段可能會被創(chuàng)建,這個新的段并不包含那些刪除。這個標記參數(shù)支持只合并有刪除的段,且默認為false。注意,這并不會重寫閾值?index.merge.policy.expunge_deletes_allowed。

  • flush?- 強制合并后是否執(zhí)行?flush,默認為?true。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

文章名稱:Elasticsearch搜索調(diào)優(yōu)權(quán)威指南(2/3)-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://chinadenli.net/article48/dicehp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、微信小程序、移動網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
亚洲熟女熟妇乱色一区| 久久99热成人网不卡| 99热中文字幕在线精品| 久久精品国产99国产免费| 亚洲一区二区三区四区性色av| 亚洲一区二区三区四区性色av| 99久热只有精品视频免费看| 不卡一区二区高清视频| 国产精品免费视频久久| 日韩国产精品激情一区| 日韩精品一区二区三区射精| 色涩一区二区三区四区| 午夜福利在线观看免费| 亚洲精品一二三区不卡| 国产又猛又大又长又粗| 国产又粗又猛又黄又爽视频免费| 亚洲精品国产美女久久久99| 日本一本不卡免费视频| 一二区中文字幕在线观看| 国产午夜精品福利免费不| 国产高清三级视频在线观看| 色婷婷中文字幕在线视频| 久久人人爽人人爽大片av| 亚洲最新一区二区三区| 国产精品免费不卡视频| 亚洲av秘片一区二区三区| 欧美精品亚洲精品日韩专区| 亚洲精品黄色片中文字幕| 日韩精品在线观看一区| 国产成人精品99在线观看| 在线免费观看黄色美女| 国产麻豆一区二区三区在| 国产日本欧美韩国在线| 国产午夜福利在线观看精品| 日韩日韩欧美国产精品| 九九热视频免费在线视频| 国产综合一区二区三区av| 成年人免费看国产视频| 亚洲av成人一区二区三区在线| 欧美午夜不卡在线观看| 午夜久久精品福利视频|