日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

子句說明

分層查詢一種查詢語法的擴(kuò)充,主要功能是增強(qiáng)查詢語法對(duì)于召回過程的控制能力,讓應(yīng)用可以根據(jù)自己的使用場景來加速文檔召回過程,提高系統(tǒng)整體性能,擴(kuò)充的功能主要有以下幾點(diǎn):

  • 允許用戶通過某些方式選擇召回的區(qū)間

  • 對(duì)于不同區(qū)間可以選擇召回的先后順序

  • 對(duì)于不同區(qū)間可以指定不同的query來影響召回集

子句語法

名詞介紹

name

description

seek

查詢過程中,查詢到一個(gè)doc的操作

docid

HA3內(nèi)部對(duì)文檔的編號(hào),查詢時(shí)會(huì)按docid從小到大查詢。

[查詢]區(qū)間/range

查詢時(shí)一個(gè)docid的范圍,這里的range是指會(huì)被查詢的docid的范圍。

[查詢]層/layer

層是由一個(gè)或者多個(gè)range組成的,層主要作用是決定查詢區(qū)間的優(yōu)先級(jí)(把不同range放到不同層)。[查詢]層/layer[查詢]區(qū)間/rangedocidseekname

查詢語法

選擇召回區(qū)間

對(duì)于召回區(qū)間的控制主要通過layer語法來實(shí)現(xiàn),具體語法格式如下 :

layer_clause := single_layer{;single_layer}
single_layer := range:attr1{attr1_value1,attr1_value2}*attr2{attr2_value1,[attr2_value2,attr2_value3]},quota:1000

一個(gè)layer子句可以由多個(gè)single_layer組成,一個(gè)single_layer主要有兩個(gè)元素:

  • quota:用于設(shè)置當(dāng)前層建議召回的doc個(gè)數(shù),這里有幾個(gè)點(diǎn)需要注意:

  • quota與rank_size的關(guān)系:各層quota總和不會(huì)大于rank_size,例如rank_size=10,quota:5;quota:7,這樣最終第二層的quota會(huì)被截?cái)嗟?。

  • 當(dāng)前層quota有剩余的情況下,會(huì)自動(dòng)把quota累加到下一層。

  • 由于層內(nèi)的每個(gè)區(qū)間之間的doc不一定滿足前面的doc比后面doc要好,所以quota有兩種作用機(jī)制,一種是每查找到一個(gè)doc,就檢查一次quota是否有剩余,另一種是在當(dāng)前層內(nèi)無視quota限制(依舊被rank_size限制),查找完當(dāng)前層,最后看是否有剩余,若有剩余則累加到下一層

  • 當(dāng)用戶顯示指定layer子句的時(shí)候,每層quota默認(rèn)值是0,此外quota還支持UNLIMITED的寫法

  • range :用于確定當(dāng)前層的doc范圍,如果不寫,范圍區(qū)間為所有doc,及[0,docCount)。range語法基本工作原理是通過用戶給定的attribute,逐級(jí)計(jì)算最終需要seek的doc范圍。需要注意的點(diǎn):

  • 語法中用到的必須是attribute,不能是需要計(jì)算的表達(dá)式

  • 語法中用到的attribute必須與離線排序方式相符,否則會(huì)自動(dòng)轉(zhuǎn)換為查詢?nèi)繀^(qū)間。

  • 語法中用到的attribute必須要是連續(xù)出現(xiàn)的,不可以中間插入擴(kuò)展關(guān)鍵字(%sorted,%docid等)

  • 除了attribute外我們還支持幾種擴(kuò)展語句:%sorted(這一層查詢排過序的全量和增量),%unsorted(這一層查詢未排序的數(shù)據(jù),實(shí)時(shí)數(shù)據(jù)等),%other(除去前面層以外的范圍),%docid(直接指定docid區(qū)間查詢),%segmentid(直接指定segmentid區(qū)間查詢),%percent(指定這個(gè)范圍百分比范圍的區(qū)間查詢)

  • 如果用戶在分層子句中沒有指定%sorted,%unsorted關(guān)鍵字,引擎會(huì)自動(dòng)為用戶添加,默認(rèn)模式是每層都是sorted,最后如果結(jié)果數(shù)不夠會(huì)為用戶多查一層實(shí)時(shí)數(shù)據(jù)

選擇不同區(qū)間的不同query

對(duì)于不同查詢層,可以使用不同的查詢?cè)~,或者選擇不同的倒排鏈。不同query通過分號(hào)隔開,當(dāng)layer的數(shù)目大于query數(shù)目時(shí),會(huì)自動(dòng)用最后一條query填充剩余層。 基本語法如下:

query=phrase:mp3;other_index:mp4;phrase:mp3#truncate_index
layer_clause := single_layer{;single_layer}
single_layer := range:attr1{attr1_value1,attr1_value2}*attr2{attr2_value1,[attr2_value2,attr2_value3]},quota:1000

使用示例:

本節(jié)將介紹分層查詢與一些引擎提供的其他功能結(jié)合使用的場景下,如何搭配使用分層查詢。

?

構(gòu)建索引時(shí)文檔排序,查詢指定召回區(qū)間

在使用離線的排序功能時(shí),文檔是全局有序的,例如,按照站點(diǎn)排序后,同一個(gè)站點(diǎn)的文檔在索引中是連續(xù)的一段,當(dāng)在某個(gè)站點(diǎn)內(nèi)部查詢時(shí),可以利用這個(gè)信息來加快seek的速度,假定站點(diǎn)對(duì)應(yīng)的attribute是site_id,查詢的站點(diǎn)ID為1和7,查詢?cè)~為iphone:

layer=range:site_id{1,7},quota:5000

或者如果站點(diǎn)1和7中查詢結(jié)果不夠的情況下,用戶還想查詢站點(diǎn)5和10的結(jié)果作為補(bǔ)充,可以這樣:

layer=range:site_id{1,7},quota:5000;range:site_id{5,10},quota:0

由于是希望第一層結(jié)果不夠的情況下才查詢第二層,所以第二層的quota設(shè)置為0(或者不寫)。當(dāng)然,用戶還可以進(jìn)行多樣性召回:

layer=range:site_id{1,7},quota:4000;range:site_id{5,10},quota:1000

對(duì)于離線排序是多維的情況,也可以支持多維區(qū)間的定位,還是以站內(nèi)查詢?yōu)槔x線排序是先按站點(diǎn)排序,站點(diǎn)相同的,按照網(wǎng)頁的靜態(tài)分排序,這種時(shí)候,查詢希望召回靜態(tài)分大于100的網(wǎng)頁,查詢語法如下:

layer=range:site_id{1,7}*static_score{[100,]},quota:4000

多query查詢

在某些情況下,用戶的查詢即擔(dān)心召回?cái)?shù)目是否足夠,又希望召回?cái)?shù)不能太多,導(dǎo)致影響查詢性能,比較常見的一類場景是,有多個(gè)查詢?cè)~,以A,B為例:

query方式

召回?cái)?shù)

性能

A AND B

最少

最好

A OR B

最多

最差

A RANK B/B RANK A

適中

中等

上述的幾種query方式,對(duì)于A和B的召回?cái)?shù)和性能都不一樣,大部分查詢希望的是有較好的召回,而且召回?cái)?shù)不需要太多,這種情況下,固定用某種查詢方式,很難保證結(jié)果數(shù)和性能都適中。使用多query的方式就可以通過一次查詢來解決這個(gè)問題:

cluster=general&&query=A OR B;A RANK B;A AND B&&layer=quota:1000;quota:1000;quota:1000

這種查詢方式可以兼顧召回文檔數(shù)目和性能,對(duì)于查詢?cè)~的關(guān)聯(lián)程度也有比較大的提升(對(duì)于大召回可以命中一些A AND B的結(jié)果,對(duì)于小召回可以通過A OR B來盡可能多召回)。

需要考慮時(shí)效性的查詢

有時(shí)候用戶會(huì)希望查詢結(jié)果的時(shí)效性比較好,在這種情況下用戶會(huì)希望先查詢實(shí)時(shí)的無序索引,之后再查詢?nèi)亢驮隽康挠行蛩饕脩粢部梢栽谟行蛩饕兄付ㄏ炔樵兒竺娴囊徊糠謹(jǐn)?shù)據(jù),再查前面的一部分?jǐn)?shù)據(jù),可以用%percent關(guān)鍵字實(shí)現(xiàn)

例如用戶想要先查詢時(shí)效性最好的實(shí)時(shí)索引,結(jié)果不夠的話查詢有序索引中后50%的doc,最后查詢前50%的doc,查詢?cè)~為iphone:

&&layer=range:%unsorted,quota:5000;range:%sorted*service_id{1,3}*%percent{[50,100)},quota:0;range:%sorted*service_id{1,3}*%percent{[0,50)},quota:0
注:percent關(guān)鍵字中可以指定不同多個(gè)區(qū)間,區(qū)間是左閉右開的

注意事項(xiàng)

  • layer子句是可選子句