多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php框架 > 框架設(shè)計(jì) > Elasticsearch Fields _source 返回值字段設(shè)置

Elasticsearch Fields _source 返回值字段設(shè)置

來(lái)源:程序員人生   發(fā)布時(shí)間:2016-04-20 10:16:05 閱讀次數(shù):9552次

官方文檔:Managing Elasticsearch Fields When Searching

Elasticsearch返回值字段設(shè)置

要想最大限度提高Elasticsearch的性能,控制搜索要求返回的字段數(shù)量是很重要的。在這1章,我們將講授如何優(yōu)化我們的利用,在每個(gè)搜索結(jié)果中唯一選擇地返回那些我們需要的字段。

介紹

在搜索中,使用參數(shù)fields允許限制每個(gè)查詢(xún)命中項(xiàng)(查詢(xún)結(jié)果 hit)返回的列(fields)。這個(gè)特性通常被用來(lái)優(yōu)化大批量數(shù)據(jù)傳輸,當(dāng)Elasticsearch查詢(xún)結(jié)果中有大量返回列時(shí),使其只返回相干的列。固然它聽(tīng)起來(lái)很簡(jiǎn)單(實(shí)際上它確切很簡(jiǎn)單),但是它卻對(duì)性能有極大的影響,查詢(xún)性能與返回文檔的數(shù)量和每個(gè)文檔大小兩個(gè)因素成反比。

斟酌這樣1種情況,當(dāng)每個(gè)文檔的平均大小是20KB,那末每次查詢(xún)要求返回10個(gè)查詢(xún)結(jié)果則是平均200KB的數(shù)據(jù)。如果每秒要求100次,那末我們就需要20M的帶寬。作1個(gè)公道的假定,假設(shè)我們?nèi)绻环祷赜杏玫淖侄?,可以下降文檔大小到800字節(jié),那末每次要求大致就只返回8KB的數(shù)據(jù)量,每秒要求100次則只需要800KB的帶寬。如果想要大范圍使用, 那末保證返回結(jié)果盡量小確切是非常重要且非常實(shí)用的。

默許情況下,開(kāi)啟的是_source字段,它包括的是解析后的文檔內(nèi)容,并會(huì)在每次查詢(xún)后返回。當(dāng)我們其實(shí)不是需要查找并解析文檔所有的內(nèi)容時(shí),我們通過(guò)限制返回的字段(fields)可以節(jié)省寶貴的服務(wù)器CPU時(shí)間和磁盤(pán)IO。上面講到的fields便足以實(shí)現(xiàn)這1點(diǎn)。如果我們需要同時(shí)返回源文檔(document)和1些列(fields),我們可使用參數(shù)_source過(guò)濾,后面將會(huì)介紹它的用法。

關(guān)于fields的另外一個(gè)特性其實(shí)不廣為人知,它也能夠用在查詢(xún)?cè)侄沃校╩etadata-fields)。這里特指用它查詢(xún)_ttl字段的值,它可以在毫秒級(jí)別返回查詢(xún)結(jié)果,而不是查詢(xún)?cè)臋n需要的時(shí)間。這確切是1個(gè)非常實(shí)用的技能。

嵌套數(shù)據(jù)和嵌套列(Nested Fields and Nested Data)

有些時(shí)候,僅僅查詢(xún)1些簡(jiǎn)單的字段是不夠的,這時(shí)候我們可能需要?jiǎng)討B(tài)地查詢(xún)1些嵌套字段中的數(shù)據(jù)。在這類(lèi)情況下,我們不能使用fields,否則只會(huì)得到下面這樣的失敗信息:
譯者注:這此信息是在Elasticsearch日志中的,1般情況下在控制臺(tái)看不到的。

{ ..., "_shards": { "failures": [ { "index": "index-name", "shard": 2, "status": 400, "reason": "ElasticsearchIllegalArgumentException[field [field_with_nested_data] isnt a leaf field]" } ] },... }

拋出的這個(gè)異常是由于fields只能用于葉子節(jié)點(diǎn)的數(shù)據(jù)(即:這個(gè)節(jié)點(diǎn)沒(méi)有子節(jié)點(diǎn))。為了能夠加載出非葉子節(jié)點(diǎn),我們需要在查詢(xún)時(shí)使用_source參數(shù),它可以激活過(guò)濾源文檔的特性(它可以用來(lái)過(guò)濾源文檔),下面將詳細(xì)講授。

源文檔過(guò)濾(Source Filtering)

源文檔過(guò)濾可以在查詢(xún)中控制原始JSON文檔中的哪1部份會(huì)被返回。我們可以設(shè)置包括列或排除列,通過(guò)模式匹配來(lái)過(guò)濾列名的訪(fǎng)問(wèn)路徑便可。請(qǐng)記住,這僅僅可以節(jié)省從查詢(xún)節(jié)點(diǎn)到調(diào)用客戶(hù)真?zhèn)€帶寬,而不能節(jié)省cpu時(shí)間和磁盤(pán)IO,除非使用fields的時(shí)候。這是由于當(dāng)使用源文檔過(guò)濾時(shí),對(duì)每個(gè)查詢(xún)結(jié)果我們依然需要解析源文檔,根據(jù)提供的模式去匹配,以確切返回值中應(yīng)當(dāng)包括這1列,或排除這1列。但是在我們的優(yōu)化計(jì)劃中,它依然是1個(gè)非常重要的方式,并且它使用非常容易,我們可以從它開(kāi)啟優(yōu)化的第1步。

在1.0版本之前,有1個(gè)更廣為人知的查詢(xún)方式――partial fields,現(xiàn)在它已過(guò)時(shí)了,已被本文的源文檔過(guò)濾替換。

后面還有兩段,但是由于我沒(méi)有使用過(guò),所以對(duì)內(nèi)容的翻譯掌握不好。暫時(shí)不翻譯了。
未完待續(xù)……

譯者附:fields和_source的使用方式

//fields { //其它查詢(xún)條件 …… "fields": [ "goods_sale_number", "id" ] }
//_source { //其它查詢(xún)條件 …… "_source": [ "goods_sale_number", "id" ] }

其實(shí)沒(méi)甚么區(qū)分,只不過(guò)兩個(gè)的機(jī)制不同,且只有_source支持嵌套類(lèi)型。
希望本文會(huì)對(duì)你有所幫助。

生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線(xiàn)----------------------------
分享到:
------分隔線(xiàn)----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲一二区视频 | 小说区亚洲区 | 欧美性在线播放 | 成人国产在线不卡视频 | 欧美日韩中文国产一区二区三区 | 中文字幕日韩一区 | 欧美另类69xxxx| 国产精品永久免费视频 | 欧美深夜福利 | 337p粉嫩日本大胆艺术 | 国产精品久久久久久久午夜片 | 成人老司机深夜福利久久 | 亚洲第一福利视频 | 噜噜噜网站 | 国农村精品国产自线拍 | 在线免费看a爱片 | 欧美性播放 | 18欧美同性videos可播放 | 伊人久久大香线焦综合四虎 | 国产一级在线视频 | 成人久久精品一区二区三区 | jizz在线观看18 | 久久精品国产第一区二区 | 99精品一区二区三区 | 2022在线精品视频网站 | 亚洲一区二区三区视频 | 日本中文字幕网址 | 亚洲免费人成在线视频观看 | 亚洲欧美卡通成人制服动漫 | www.爱爱视频| 亚洲欧美经典 | 91亚洲综合| 亚洲第一成网站 | 欧美日韩免费大片 | 91精品国产99久久 | 人善交video 人善交videos欧美3 | 亚洲欧美网 | 国产精品一级视频 | 亚洲 欧美 国产 中文 | 亚欧乱色 | www的视频|