ha搜索处理

系统提供了丰富的搜索语法以满足用户各种场景下的搜索需求。

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子句的formatxml或者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"
}

注意事项