系统提供了丰富的搜索语法以满足用户各种场景下的搜索需求。
URL
query?query=fetch_fields:name&&config=start:0,hit:100,format:json&&cluster=general&&sort=id
以上 URL 省略了请求Header参数及编码等因素。
以上 URL 中省略了访问应用的 host 地址。
以上URL 中拼接的所有查询参数,请查看下方“查询参数”的参数定义、使用方式及样例。
请求协议
HTTP
请求方式
GET
支持格式
JSON
签名机制
可用以下方法计算签名(authorization)
参数 | 类型 | 描述 |
accessUserName | string | 用户名,可在实例详情页>网络信息查看 |
accessPassWord | string | 密码,可在实例详情页>网络信息修改 |
import com.aliyun.darabonba.encode.Encoder;
import com.aliyun.darabonbastring.Client;
public class GenerateAuthorization {
public static void main(String[] args) throws Exception {
String accessUserName = "username";
String accessPassWord = "password";
String realmStr = "" + accessUserName + ":" + accessPassWord + "";
String authorization = Encoder.base64EncodeToString(Client.toBytes(realmStr, "UTF-8"));
System.out.println(authorization);
}
}
authorization正确返回格式
cm9vdDp******mdhbA==
注意:使用HTTP请求设置authorization参数是需加上Basic前缀
示例:
authorization: Basic cm9vdDp******mdhbA==
查询参数
参数 | 类型 | 必须 | 描述 |
query | string | 是 | 搜索主体,不能为空。主要支持子句有config子句、query子句、sort子句、filter子句、aggregate子句、distinct子句、kvpairs子句。 |
query子句 | string | 是 | 用于设置搜索条件 |
config子句 | string | 否 | 用于设置搜索召回数据格式,及召回文档数 |
filter子句 | string | 否 | 用于设置过滤条件 |
sort 子句 | string | 否 | 用于设置文档排序条件 |
aggregate子句 | string | 否 | 设置统计信息 |
distinct子句 | string | 否 | 打散子句可以对每个用户的文档进行抽取,使得每个用户都有展示文档的机会 |
kvpairs子句 | string | 否 | 在kvpairs子句中对排序表达式中的可变部分进行参数定义 |
查询参数用法
query:可以通过若干子句的组合来实现多样的搜索需求,query参数中各子句之间通过&&进行连接。
返回参数
参数 | 类型 | 描述 |
requestId | string | 该条查询的记录id,主要用于排查问题使用 |
result | JSON | 实际返回结果 |
code | string | 错误码 |
message | string | 错误信息 |
result中返回参数说明:
searchtime:指引擎耗时,单位为秒。
totalHits:totalHits为一次查询(不考虑config子句)引擎中符合条件的结果数(在结果数较多情况下,该值会做优化)
items:包含查询召回数据信息,其中fields为搜索召回内容。
variableValue:表示自定义参数返回结果,如获取distance距离值,variableValue 节点只有在config子句的format为xml或者fulljson时才能展现出来,JSON格式默认不展示。
sortExprValues: 表示对应文档排序分。
facet:用于存放Aggregate子句返回的信息。
array字段类型:通过JSON和fulljson格式返回,数据之间通过\t分割,如果通过xml格式返回,通过空格分割
curl示例
curl --location --request GET 'http://ha-*****.aliyuncs.com/query?query=query=index_id:1%26%26config=start:0,hit:100,format:json%26%26cluster=general%26%26sort=id' \
--header 'authorization: Basic bWF************yZ2Fs' \
--header 'host: ha-cn-******aliyuncs.com'
示例中的endpoint是公网访问的域名,详情可参考网络信息
Search示例
正常返回
{
"requestId": "70028435-****-****-****-42A2CBD360F3",
"result": {
"searchtime": 0.003488,
"numHits": 1,
"totalHits": 1,
"coveredPercent": 100,
"items": [
{
"fields": {
"id": "1",
"embedding": "0.00156,-0.09226,-0.09548,0.00942,0.06419,0.07005",
"url": "url_address"
},
"properties": {
},
"attributes": {
},
"variableValues": {
},
"sortExprValues": [
"10000"
]
}
],
"facet": []
}
}
错误返回
{
"requestId": "70028435-****-****-****-42A2CBD360F3",
"code": "InstanceNotExist",
"message": "Instance not exist, can't query"
}
注意事项
查询query长度超过30K,请使用 RESTFUL API搜索处理