子句说明
config子句是必选子句,可以对查询进行实时控制,通过config子句可以指定查询结果的起始位置、返回结果的数量、展现结果的格式,查询的超时时间等。
语法说明
config=key1:value1,key2:value2...
目前支持的key,value如下表所示:
参数名 | 取值范围 | 默认值 | 参数说明 |
start | NUMBER | 0 | 从结果集中第start_offset开始返回document |
hit | NUMBER | 10 | 返回文档的最大数量 |
format | 'json' or 'xml' | 'xml' | 输出格式控制 |
rank_trace | 'FATAL' or 'ERROR' or 'INFO' or 'DEBUG' or 'WARN' or 'TRACE1' or 'TRACE2' or 'TRACE3' | 无 | 在前端输出一个document的算分相关信息 |
default_index | string | "" | 指定在该次查询中使用的默认index,功能与cluster配置文件中query_config配置项的功能一致。如果在query中指定则优先使用query中指定的index作为默认index,否则使用query_config配置项中指定的index。 |
default_operator | 'AND' or 'OR' | "" | 指定在该次查询中使用的默认query 操作符,功能与cluster配置文件中query_config配置项的功能一致。如果在query中指定则使用query中指定的作为默认操作符,否则使用query_config配置项中指定的操作符。 |
timeout | NUMBER | 0 | 指定query超时时间,单位ms,0用配置超时,不能为负数。 |
seek_timeout | NUMBER | 0 | 指定query seek阶段超时时间,单位ms,默认值为0。默认情况下采用配置超时 * 0.7作为seek超时时间。 |
no_summary | no or yes | no | yes则只进行第一阶段查询,不取summary |
dedup | no or yes | yes | yes则会自动对结果按照primary key去重,否则不会去重。 |
searcher_return_hits | NUMBER | 0 | 限制searcher返回结果数,如果为0,则返回start+hit;不能超过5000 |
actual_hits_limit | NUMBER | 0 | 决定totalhits展示实际值还是估算值,当实际结果数小于actual_hits_limit,则返回实际值,否则返回估算值。如果为0,则始终返回估算值;如果为numeric_limits<uint32_t>::max(),则始终返回实际值。 |
sourceid | string | 无 | 索引有多个replica同时在线服务,如果不给定sourceid,每次查询将会随机地选一个replica进行查询。索引进行增量更新时,多个replica之间会出现不一致的时期(部份已更新,部分还是旧的),会导致查询结果有时新有时旧。给定sourceid后,查询会根据sourceid的哈希值选取某个replica。同一sourceid的用户查询到的结果就不会新旧来回变换了。sourceid可以是任意字符串。 |
rerank_hint | BOOL | false | 是否走第二轮算分 |
rank_size | NUMBER | 0 | 粗排数,也就是直接动态索引截断数,如果为0, 则用配置文件里的值 |
rerank_size | NUMBER | 0 | 第一轮精排数,如果为0, 则用配置文件里的值 |
total_rank_size | NUMBER | 0 | 各partition粗排数之和,也就是直接动态索引截断数,如果为0, 则用配置文件里的值 |
total_rerank_size | NUMBER | 0 | 各partition第一轮精排数之和,如果为0, 则用配置文件里的值 |
fetch_summary_type | docid or pk or rawpk | docid | 设置取summary方式,默认是按照docid取,也可以通过pk的hash值或是pk的原文来取,建议使用pk。 |
research_threshold | NUMBER | 0 | 当结果数不足该值时,触发重查 |
使用示例
翻页使用:每页20个结果,分别获取第一页、第二页结果;
#第一页
config=start:0, hit:20, format:xml
#第二页
config=start:20, hit:20, format:xml
设置精排文档数为1000;
config=start:0, hit:20, rerank_size:1000
注意事项
参数对内key、value采用冒号(:)分隔;
start+hit<=5000,超过5000会直接报错无结果。