日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php框架 > 框架設計 > Elasticsearch Fields _source 返回值字段設置

Elasticsearch Fields _source 返回值字段設置

來源:程序員人生   發布時間:2016-04-20 10:16:05 閱讀次數:9559次

官方文檔:Managing Elasticsearch Fields When Searching

Elasticsearch返回值字段設置

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

介紹

在搜索中,使用參數fields允許限制每個查詢命中項(查詢結果 hit)返回的列(fields)。這個特性通常被用來優化大批量數據傳輸,當Elasticsearch查詢結果中有大量返回列時,使其只返回相干的列。固然它聽起來很簡單(實際上它確切很簡單),但是它卻對性能有極大的影響,查詢性能與返回文檔的數量和每個文檔大小兩個因素成反比。

斟酌這樣1種情況,當每個文檔的平均大小是20KB,那末每次查詢要求返回10個查詢結果則是平均200KB的數據。如果每秒要求100次,那末我們就需要20M的帶寬。作1個公道的假定,假設我們如果只返回有用的字段,可以下降文檔大小到800字節,那末每次要求大致就只返回8KB的數據量,每秒要求100次則只需要800KB的帶寬。如果想要大范圍使用, 那末保證返回結果盡量小確切是非常重要且非常實用的。

默許情況下,開啟的是_source字段,它包括的是解析后的文檔內容,并會在每次查詢后返回。當我們其實不是需要查找并解析文檔所有的內容時,我們通過限制返回的字段(fields)可以節省寶貴的服務器CPU時間和磁盤IO。上面講到的fields便足以實現這1點。如果我們需要同時返回源文檔(document)和1些列(fields),我們可使用參數_source過濾,后面將會介紹它的用法。

關于fields的另外一個特性其實不廣為人知,它也能夠用在查詢元字段中(metadata-fields)。這里特指用它查詢_ttl字段的值,它可以在毫秒級別返回查詢結果,而不是查詢原文檔需要的時間。這確切是1個非常實用的技能。

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

有些時候,僅僅查詢1些簡單的字段是不夠的,這時候我們可能需要動態地查詢1些嵌套字段中的數據。在這類情況下,我們不能使用fields,否則只會得到下面這樣的失敗信息:
譯者注:這此信息是在Elasticsearch日志中的,1般情況下在控制臺看不到的。

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

拋出的這個異常是由于fields只能用于葉子節點的數據(即:這個節點沒有子節點)。為了能夠加載出非葉子節點,我們需要在查詢時使用_source參數,它可以激活過濾源文檔的特性(它可以用來過濾源文檔),下面將詳細講授。

源文檔過濾(Source Filtering)

源文檔過濾可以在查詢中控制原始JSON文檔中的哪1部份會被返回。我們可以設置包括列或排除列,通過模式匹配來過濾列名的訪問路徑便可。請記住,這僅僅可以節省從查詢節點到調用客戶真個帶寬,而不能節省cpu時間和磁盤IO,除非使用fields的時候。這是由于當使用源文檔過濾時,對每個查詢結果我們依然需要解析源文檔,根據提供的模式去匹配,以確切返回值中應當包括這1列,或排除這1列。但是在我們的優化計劃中,它依然是1個非常重要的方式,并且它使用非常容易,我們可以從它開啟優化的第1步。

在1.0版本之前,有1個更廣為人知的查詢方式――partial fields,現在它已過時了,已被本文的源文檔過濾替換。

后面還有兩段,但是由于我沒有使用過,所以對內容的翻譯掌握不好。暫時不翻譯了。
未完待續……

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

//fields { //其它查詢條件 …… "fields": [ "goods_sale_number", "id" ] }
//_source { //其它查詢條件 …… "_source": [ "goods_sale_number", "id" ] }

其實沒甚么區分,只不過兩個的機制不同,且只有_source支持嵌套類型。
希望本文會對你有所幫助。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美日韩一区二区三区 | 91丨九色丨国产在线 | 亚洲免费精品 | 久久av一区二区三区亚洲 | 久久精品亚洲一区二区三区浴池 | 国产一区二区三区麻豆 | 日韩激情电影 | 中文字幕亚洲电影 | 免费一区二区三区 | 高清一二三区 | 国产成人免费网站 | 午夜免费 | aaaaaaaaa毛片| 欧美 日韩 中文字幕 | 91香焦视频 | 国产精品久久久久一区二区三区 | 亚洲精品一区二区三区不 | 久久久久久精 | 色先锋在线 | 日日操天天操夜夜操 | 91精品一区二区三区蜜桃 | 免费av网站在线看 | 伊人国产在线 | 91.成人天堂一区 | 91成人入口 | 99精品在线观看视频 | 91红桃视频 | 亚洲精品成人在线 | 日韩欧美自拍偷拍 | 久久99精品久久 | av久久久| av中文字幕第一页 | 久久一区二 | 免费淫片 | 亚洲国产精品99久久久久久久久 | 男人午夜影院 | 99在线观看视频 | 成人精品在线 | 在线播放日韩 | 色我综合 | 国产精品1区|