config子句
子句說(shuō)明
config子句是必選子句,可以對(duì)查詢進(jìn)行實(shí)時(shí)控制,通過(guò)config子句可以指定查詢結(jié)果的起始位置、返回結(jié)果的數(shù)量、展現(xiàn)結(jié)果的格式,查詢的超時(shí)時(shí)間等。
語(yǔ)法說(shuō)明
config=key1:value1,key2:value2...
?
目前支持的key,value如下表所示:
參數(shù)名 | 取值范圍 | 默認(rèn)值 | 參數(shù)說(shuō)明 |
start | NUMBER | 0 | 從結(jié)果集中第start_offset開始返回document |
hit | NUMBER | 10 | 返回文檔的最大數(shù)量 |
format | 'json' or 'xml' | 'xml' | 輸出格式控制 |
rank_trace | 'FATAL' or 'ERROR' or 'INFO' or 'DEBUG' or 'WARN' or 'TRACE1' or 'TRACE2' or 'TRACE3' | 無(wú) | 在前端輸出一個(gè)document的算分相關(guān)信息 |
default_index | string | "" | 指定在該次查詢中使用的默認(rèn)index,功能與cluster配置文件中query_config配置項(xiàng)的功能一致。如果在query中指定則優(yōu)先使用query中指定的index作為默認(rèn)index,否則使用query_config配置項(xiàng)中指定的index。 |
default_operator | 'AND' or 'OR' | "" | 指定在該次查詢中使用的默認(rèn)query 操作符,功能與cluster配置文件中query_config配置項(xiàng)的功能一致。如果在query中指定則使用query中指定的作為默認(rèn)操作符,否則使用query_config配置項(xiàng)中指定的操作符。 |
timeout | NUMBER | 0 | 指定query超時(shí)時(shí)間,單位ms,0用配置超時(shí),不能為負(fù)數(shù)。 |
seek_timeout | NUMBER | 0 | 指定query seek階段超時(shí)時(shí)間,單位ms,默認(rèn)值為0。默認(rèn)情況下采用配置超時(shí) * 0.7作為seek超時(shí)時(shí)間。 |
no_summary | no or yes | no | yes則只進(jìn)行第一階段查詢,不取summary |
dedup | no or yes | yes | yes則會(huì)自動(dòng)對(duì)結(jié)果按照primary key去重,否則不會(huì)去重。 |
searcher_return_hits | NUMBER | 0 | 限制searcher返回結(jié)果數(shù),如果為0,則返回start+hit;不能超過(guò)5000 |
actual_hits_limit | NUMBER | 0 | 決定totalhits展示實(shí)際值還是估算值,當(dāng)實(shí)際結(jié)果數(shù)小于actual_hits_limit,則返回實(shí)際值,否則返回估算值。如果為0,則始終返回估算值;如果為numeric_limits<uint32_t>::max(),則始終返回實(shí)際值。 |
sourceid | string | 無(wú) | 索引有多個(gè)replica同時(shí)在線服務(wù),如果不給定sourceid,每次查詢將會(huì)隨機(jī)地選一個(gè)replica進(jìn)行查詢。索引進(jìn)行增量更新時(shí),多個(gè)replica之間會(huì)出現(xiàn)不一致的時(shí)期(部份已更新,部分還是舊的),會(huì)導(dǎo)致查詢結(jié)果有時(shí)新有時(shí)舊。給定sourceid后,查詢會(huì)根據(jù)sourceid的哈希值選取某個(gè)replica。同一sourceid的用戶查詢到的結(jié)果就不會(huì)新舊來(lái)回變換了。sourceid可以是任意字符串。 |
rerank_hint | BOOL | false | 是否走第二輪算分 |
rank_size | NUMBER | 0 | 粗排數(shù),也就是直接動(dòng)態(tài)索引截?cái)鄶?shù),如果為0, 則用配置文件里的值 |
rerank_size | NUMBER | 0 | 第一輪精排數(shù),如果為0, 則用配置文件里的值 |
total_rank_size | NUMBER | 0 | 各partition粗排數(shù)之和,也就是直接動(dòng)態(tài)索引截?cái)鄶?shù),如果為0, 則用配置文件里的值 |
total_rerank_size | NUMBER | 0 | 各partition第一輪精排數(shù)之和,如果為0, 則用配置文件里的值 |
fetch_summary_type | docid or pk or rawpk | docid | 設(shè)置取summary方式,默認(rèn)是按照docid取,也可以通過(guò)pk的hash值或是pk的原文來(lái)取,建議使用pk。 |
research_threshold | NUMBER | 0 | 當(dāng)結(jié)果數(shù)不足該值時(shí),觸發(fā)重查 |
使用示例
翻頁(yè)使用:每頁(yè)20個(gè)結(jié)果,分別獲取第一頁(yè)、第二頁(yè)結(jié)果;
#第一頁(yè)
config=start:0, hit:20, format:xml
#第二頁(yè)
config=start:20, hit:20, format:xml
設(shè)置精排文檔數(shù)為1000;
config=start:0, hit:20, rerank_size:1000
注意事項(xiàng)
參數(shù)對(duì)內(nèi)key、value采用冒號(hào)(:)分隔;
start+hit<=5000,超過(guò)5000會(huì)直接報(bào)錯(cuò)無(wú)結(jié)果。