数据检索

最近更新时间:2019-09-27 15:00:39

1. 接口描述

  • 域名:yunsou.api.qcloud.com
  • 接口名: DataSearch
  • 功能:对数据进行查询操作

2. 输入参数

参数名称 必选 类型 描述
appId Int 云搜的业务 ID,用以表明当前数据请求的业务
search_query String 检索串
page_id Int 当前页,从第0页开始计算
num_per_page Int 每页结果数
search_id String 当前检索号,用于定位问题,建议指定并且全局唯一
query_encode Int 请求编码,0表示 utf8,1表示 gbk,建议指定
rank_type Int 排序类型
num_filter String 数值过滤,结果中按属性过滤(格式参见后面说明)
cl_filter String 分类过滤,导航类检索请求(格式参见后面说明)
extra String 检索用户相关字段(格式参见后面说明)
source_id Int 检索来源
second_search Int 是否进行二次检索,0关闭,1打开,默认是0
max_doc_return Int 指定返回最大篇数,无特殊原因不建议指定,默认300篇
is_smartbox Int 是否 smartbox 检索,0关闭,1打开,默认是0
enable_abs_highlight Int 是否打开高红标亮,0关闭,1打开,默认是0
qc_bid Int 指定访问 QC 业务 ID

3. 输出参数

参数名称 类型 描述
cost_time int 请求耗时
display_num int 展示结果数
eresult_num int 预计总结果数
result_list struct 返回结果
result_num int 返回结果数
seg_list struct 分词结果
code Int 错误码,0:成功,其他值:失败
message String 错误信息

4. 过滤说明

腾讯云搜主要包括两类过滤方式:数值过滤和分类过滤。

  • 数值过滤
    对应检索请求中的 num_filter 字段,基本表达式可以描述为:
    [N:meta:start:end]
    该表达式含义为:属性满足 start ≤ meta值 ≤ end 的文档将会被留下,其它的被过滤。其中,meta 字段必须为数值字段
    另外,数值过滤表达式之间支持“与”“或”关系。用&和|符号连接,支持使用括号标识优先级。
    [N:meta1:start:end]&([N:meta2:start:end]|[N:meta3:start:end])
  • 分类过滤
    对应检索请求中的 cl_filter 字段,基本表达式可以描述为:
    [C:meta:value]
    该表达式含义为:对该 meta 域使用特殊的倒排索引进行检索,特别适用于导航检索。其中 meta 字段可为数字或数值。
    另外,分类检索表达式支持“与”“或”关系。用&和|符号连接,支持使用括号标识优先级。
    [C:meta1:value1]&([C:meta2:value2]|[C:meta3:value3])。

5. 检索字段附加说明

extra 相关性排序字段说明
检索请求中包含 extra 字段用来标识当次检索结果排序的情况。其基本格式为:

META1_TYPE1_META2_TYPE2_rel_TYPE3

以上表达式表示的含义为,排序分成三档,仅在前一档值相同情况下,才会进行下一档排序:

  • 第一档按照 META1 的属性值进行排序,排序类型为 TYPE1。
  • 第二档按照 META2 的属性值进行排序,排序类型为 TYPE2。
  • 第三档按照 rel(即文本相关性得分进行排序),排序类型为TYPE3。
    注意:

    rel 字段的值非业务数据,而是搜索侧的计算结果。

表达式取值方法

  • Meta:meta 本身为属性字段名即可(不含下划线,避免冲突),但是需要保证需要进行排序的属性是数值字段。
  • Type:
    Type=0:当前属性越小,排序越靠前。
    Type=1:当前属性越大,排序越靠前。

rank_type 字段说明

  • rank_type=0:文本相关性打分降序排列。
  • rank_type=1:文本相关性打分升序排列。
  • rank_type=2:按照用户输入的 extra 字段,结合用户在高级组件中定制的排序对返回结果的顺序进行排序。
  • rank_type=5:不使用额外的排序策略,按搜索结果直接返回。

6. 示例

输入:

 https://domain/v2/index.php?Action=DataSearch
 &appId=1
 &search_query=qq
 &page_id=0
&num_per_page=10

输出:

{
    "code": 0,
    "message": "",
    "data": {
        "cost_time": 19,
        "display_num": 2,
        "echo": "",
        "eresult_num": 2,
        "result_list": [{
                "doc_id": "200",
                "doc_meta": {
                    "AA": "41",
                    "NA": "200",
                    "TA": "qq",
                    "TB": "cloudsearchdoc",
                    "TC": "qq"
                },
                "l2_score": 0,
                "search_debuginfo": ""
            },
            {
                "doc_id": "11005",
                "doc_meta": {
                    "AA": "41",
                    "NA": "200",
                    "TA": "qq",
                    "TB": "cloudsearchdoc",
                    "TC": "qq"
                },
                "l2_score": 0,
                "search_debuginfo": ""
            }
        ],
        "result_num": 2,
        "seg_list": [{
                "seg_str": "qq"
            },
            {
                "seg_str": "腾讯"
            }
        ]
    }
}