config子句

子句说明

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

当结果数不足该值时,触发重查

使用示例

  1. 翻页使用:每页20个结果,分别获取第一页、第二页结果;

#第一页
  config=start:0, hit:20, format:xml   
  
#第二页
  config=start:20, hit:20, format:xml

  1. 设置精排文档数为1000;

config=start:0, hit:20, rerank_size:1000

注意事项

  • 参数对内key、value采用冒号(:)分隔;

  • start+hit<=5000,超过5000会直接报错无结果。