El sistema ofrece una sintaxis de búsqueda completa para satisfacer los requisitos de diversos escenarios.
URL
/v3/openapi/apps/$app_name/search?fetch_fields=name&query=config=format:fulljson&&query=name:'zhangsan'&&sort=id
$app_name: Nombre de la aplicación. Las ediciones Premium y Standard son versiones multiaplicación. Debe especificar un nombre de aplicación para acceder a una aplicación que esté en servicio.
La URL anterior omite encabezados de solicitud, codificación y otros factores.
La URL anterior omite la dirección del host para acceder a la aplicación.
Para consultar las definiciones, el uso y los ejemplos de los parámetros de consulta en la URL anterior, consulte la sección Parámetros de consulta a continuación.
Protocolo de solicitud
HTTP
Método de solicitud
GET
Formato compatible
JSON
Parámetros de consulta
Para obtener detalles sobre cómo concatenar parámetros de consulta, consulte el documento v3 API signing mechanism.
|
Parámetro |
Tipo |
Obligatorio |
Valores válidos |
Valor predeterminado |
Descripción |
|
query |
string |
Sí |
Cuerpo principal de la búsqueda. Este parámetro no puede estar vacío. Admite cláusulas como config, query, sort, filter, aggregate, distinct y kvpair. |
||
|
fetch_fields |
string |
No |
Todos los campos visualizables. |
Especifica los campos que se devolverán en los resultados de la consulta. Separe varios campos con punto y coma ( |
|
|
disable |
string |
No |
Deshabilita funciones específicas de parámetros que están activas. |
||
|
first_rank_name |
string |
No |
Nombre de la expresión de ordenamiento preliminar predeterminada en el sistema. |
Establece el nombre de rough sort function. Solo se admite un nombre de ordenamiento preliminar. |
|
|
second_rank_name |
string |
No |
Nombre de la expresión de ordenamiento predeterminada para el servicio |
Establece el nombre de fine sort function. Solo se admite un nombre de ordenamiento fino. |
|
|
user_id |
string |
No |
Identifica al usuario final que inició la solicitud de búsqueda actual. Este parámetro puede establecerse con uno de los siguientes valores, listados en orden descendente de prioridad: 1. El ID de inicio de sesión permanente del usuario final. 2. El IMEI del dispositivo celular del usuario final. |
||
|
re_search |
string |
No |
Establece la directiva de nueva búsqueda. Actualmente, solo puede configurar una directiva basada en el umbral de aciertos totales. |
||
|
biz |
string |
No |
Describe información empresarial relacionada con la solicitud, como el tipo de negocio desde el cual se originó. |
||
|
summary |
string |
No |
Obtiene la configuración de resumen de resultados de búsqueda del sistema. |
Configura search result summary. Puede especificar campos para resaltado, truncamiento y otras operaciones. |
|
|
query clause |
string |
Sí |
Establece las condiciones de búsqueda. |
||
|
config clause |
string |
No |
Establece el formato de datos y la cantidad de documentos que se devolverán. |
||
|
filter clause |
string |
No |
Establece las condiciones de filtrado. |
||
|
sort clause |
string |
No |
Establece las condiciones de ordenamiento de documentos. Solo se admite el ordenamiento por un único campo de tipo int. Esta limitación aplica a la API v3 y a los SDK. |
Uso de parámetros de consulta
query: El parámetro
querypuede combinar varias cláusulas para satisfacer diversos requisitos de búsqueda. Las cláusulas dentro del parámetroqueryse conectan mediante&&.fetch_fields: El tamaño de los datos de texto devueltos tiene un impacto significativo en el rendimiento. Recupere únicamente los campos necesarios. Si este parámetro se configura en el SDK o la API, sobrescribe la configuración correspondiente en la consola.
qp: Si este parámetro se configura en el SDK o la API, sobrescribe la configuración correspondiente en la consola.
Nota: Puede consultar los efectos y resultados de qp en la página de prueba de búsqueda de la consola. Actualmente, la API y los SDK no exponen esta información.
-
disable: Utilice este parámetro para deshabilitar funciones de parámetros como
qp,summary,first_rank,second_rankyre_search.Descripción de la función
Este parámetro controla si se deshabilitan ciertas funciones durante una consulta.
Permite deshabilitar funciones como análisis de consultas, resaltado, ordenamiento preliminar y fino, y nueva búsqueda.
Formato del parámetro:
disable=function[;function] function=function_name[:function_param]-
Ejemplos:
Para deshabilitar el análisis de consultas, establezca
disable=qp.Para deshabilitar la función
spell_checken el análisis de consultas, establezcadisable=qp:spell_check.Para deshabilitar la nueva búsqueda, establezca
disable=re_search.
first_rank_name: Si este parámetro se configura en el SDK o la API, sobrescribe la configuración correspondiente en la consola.
second_rank_name: Si este parámetro se configura en el SDK o la API, sobrescribe la configuración correspondiente en la consola.
-
user_id:
Al establecer este parámetro en una solicitud de búsqueda, el valor de
user_iddebe codificarse en URL.
-
raw_query:
Descripción de la función
Este parámetro especifica la consulta de búsqueda original ingresada por el usuario final.
Formato del parámetro:
raw_query=contentcontent: La consulta de búsqueda original.
-
re_search:
Descripción de la función
Este parámetro establece la directiva de nueva búsqueda. Actualmente, solo puede configurar una directiva basada en el umbral de aciertos totales.
Formato del parámetro:
re_search=strategy:threshold,params:total_hits#${COUNT}COUNT: Límite superior para
total_hitsque desencadena una nueva búsqueda. Se realiza una nueva búsqueda sitotal_hitses menor que COUNT.-
Ejemplo:
re_search=url_encode(strategy:threshold,params:total_hits#6)
-
biz:
Descripción de la función
-
Este parámetro describe información empresarial relacionada con la solicitud, como el tipo de negocio desde el cual se originó.
Formato del parámetro:
biz=type:$TYPE type: Tipo de tráfico. Puede definir el valor. Posteriormente, podrá utilizar este valor para distinguir entre diferentes fuentes de tráfico en los informes.
-
Ejemplo:
biz=type:home_page
-
vector_threshold:
-
Descripción de la función
Este parámetro controla el umbral de puntuación vectorial para la recuperación de documentos en una búsqueda vectorial. Solo se devuelven los documentos con una puntuación vectorial inferior a este valor.
-
Formato del parámetro:
El valor es un número de punto flotante.
Este parámetro es opcional. Si no se establece, el sistema utiliza un umbral integrado.
vector_threshold=14.0
-
summary:
Los parámetros
summary_element_prefixysummary_element_postfixdeben configurarse simultáneamente.El parámetro
summary_elementy el par (summary_element_prefix,summary_element_postfix) se afectan mutuamente. Una configuración posterior sobrescribe a una anterior.Actualmente, no es posible configurar el resumen y el resaltado por separado.
Si este parámetro se configura en el SDK o la API, sobrescribe la configuración correspondiente en la consola.
|
Parámetro |
Tipo |
Obligatorio |
Valores válidos |
Valor predeterminado |
Descripción |
|
summary_field |
string |
Sí |
Campo que se resumirá. |
||
|
summary_element |
string |
No |
em |
Etiqueta de resaltado; es una etiqueta HTML sin sus corchetes angulares. |
|
|
summary_ellipsis |
string |
No |
… |
Puntos suspensivos al final del resumen. |
|
|
summary_snipped |
int |
No |
1 |
Cantidad de fragmentos de resumen que se seleccionarán. |
|
|
summary_len |
string |
No |
Longitud del fragmento de resumen que se mostrará. |
||
|
summary_element_prefix |
string |
No |
Prefijo para el resaltado. Debe ser una etiqueta HTML completa, como <em>. |
||
|
summary_element_postfix |
string |
No |
Sufijo para el resaltado. Debe ser una etiqueta HTML completa, como </em>. |
Resultado devuelto
|
Parámetro |
Tipo |
Descripción |
|
status |
string |
Resultado de la ejecución. |
|
request_id |
string |
ID del registro de consulta. Se utiliza principalmente para la solución de problemas. |
|
result |
JSON |
Resultado real. Incluye información como el tiempo de consulta ( |
|
errors |
list |
Código y mensaje de error. |
searchtime: Tiempo, en segundos, que consumió el motor para procesar la solicitud.
Diferencias entre
total,viewtotalynum:totales la cantidad de resultados que cumplen las condiciones de consulta en el motor, sin considerar la cláusulaconfig. Este valor es una estimación cuando hay muchos resultados y generalmente se usa con fines de visualización.viewtotales la cantidad máxima de resultados que devuelve el motor por motivos de rendimiento y relevancia. Para paginar resultados,start+hitdebe ser menor queviewtotal.numes la cantidad real de elementos devueltos para la solicitud actual. Este valor está limitado por los parámetrosstartyhiten la cláusulaconfigy no excede el valor dehit.compute_cost: Arreglo que contiene un único elemento de mapa.
index_namees el ID de la aplicación yvaluees la cantidad de Unidades de Cómputo Lógico (LCU) consumidas por la consulta.items: Contiene los datos recuperados. El parámetro fields incluye el contenido de los resultados de búsqueda.
variableValue: Resultado devuelto de un parámetro personalizado, como un valor de distancia. El nodo
variableValuese muestra únicamente si format en config clause se establece enxmlofulljson. De forma predeterminada, este nodo no se muestra en formatojson.sortExprValues: Puntuación de ordenamiento del documento correspondiente.
facet: Almacena la información devuelta por la cláusula Aggregate.
Tipo de campo de arreglo: Si se devuelve un campo de arreglo en formato
jsonofulljson, los datos se separan con\t. Si se devuelve en formatoxml, los datos se separan con espacios.
Ejemplo de búsqueda
Respuesta JSON
{
"result": {
"searchtime": 0.009554,
"total": 1,
"compute_cost": [
{
"index_name": "110247758",
"value": 0.304
}
],
"num": 1,
"viewtotal": 1,
"items": [
{
"variableValue": {
},
"sortExprValues": [
"10000"
],
"property": {
},
"attribute": {
},
"fields": {
"size": "XL",
"discount_price": "9.9",
"pid": "950",
"range_age": "18\t25",
"detail": "Men's jacket lapel 2021 spring and autumn new youth thin top casual zipper jacket",
"index_name": "110247758"
}
}
],
"facet": []
},
"ops_request_misc": "%7B%22request%5Fid%22%3A%22162642700916781929257960%22%2C%22scm%22%3A%2220140713.110229359..%22%7D",
"tracer": "",
"request_id": "162642700916781929257960",
"errors": [],
"status": "OK"
}
Respuesta de error
{
"result": {
"searchtime": 0.003999,
"total": 0,
"compute_cost": [
{
"index_name": "110247758",
"value": 0.232
}
],
"num": 0,
"viewtotal": 0,
"items": [],
"facet": []
},
"ops_request_misc": "%7B%22request%5Fid%22%3A%22162642716516781913069826%22%2C%22scm%22%3A%2220140713.110229359..%22%7D",
"tracer": "",
"request_id": "162642716516781913069826",
"errors": [
{
"code": 6127,
"message": "Attribute not exist."
}
],
"status": "FAIL"
}
Nota: Un
statusdeFAILindica que ocurrió un error y no se devolvieron resultados. Sin embargo, en algunos casos pueden devolverse tanto un error como resultados. En estas situaciones, elstatusesOK. Por ejemplo, si ocurre un1000 server error(tiempo de espera de búsqueda agotado) o un error2112(índice para ordenamiento fino no especificado), aún podrían devolverse resultados.
Escaneo con scroll
Una búsqueda tradicional está diseñada para recuperar los resultados más relevantes en el menor tiempo posible. Por lo tanto, la cantidad de resultados de búsqueda es limitada. Por ejemplo, el método de búsqueda puede recuperar un máximo de 5,000 documentos. En algunos escenarios, podría necesitar recuperar más resultados para su análisis. Utilice la API de scroll para recuperar una mayor cantidad de resultados.
Cláusulas compatibles
Cláusula
query.Cláusula
config. El parámetrostartno es válido en esta cláusula.Cláusula
filter.Cláusula
sort. Esta cláusula solo admite ordenamiento por un único campo de tipointy está limitada a la API v3 y a los SDK.
URL
Consulta inicial
/v3/openapi/apps/$app_name/search?search_type=scan&scroll=1m&query_parameters
Consultas subsiguientes
/v3/openapi/apps/$app_name/search?scroll_id=$scroll_id&scroll=1m&query_parameters
$app_name: Nombre de la aplicación.
La URL anterior omite la dirección del host para acceder a la aplicación.
Las URL de solicitud de scroll anteriores omiten encabezados de solicitud, contenido de parámetros de consulta, codificación y otros factores. Para ver una URL de solicitud de scroll completa, consulte el ejemplo a continuación.
El método scroll tiene funcionalidad limitada y no es compatible con la mayoría de las funciones. Para obtener más información sobre limitaciones específicas, consulte las notas al final.
Protocolo de solicitud
HTTP
Método de solicitud HTTP
GET
Formato compatible
JSON
Parámetros de consulta
|
Parámetro |
Tipo |
Obligatorio |
Valores válidos |
Valor predeterminado |
Descripción |
|
scroll |
STRING |
Sí |
Week, Day, Hour, minute, second |
Especifica el periodo de validez para la siguiente solicitud de scroll. Debe establecer este parámetro en cada solicitud. Por ejemplo, |
|
|
search_type |
STRING |
Sí |
scan |
Este parámetro es obligatorio para la primera consulta. No es necesario para consultas subsiguientes. Las consultas posteriores se realizan especificando el |
|
|
scroll_id |
string |
Sí |
La primera llamada al método scroll devuelve un |
||
|
query clause |
string |
Sí |
Establece las condiciones de búsqueda. |
||
|
config clause |
string |
Sí |
Establece el formato de datos y la cantidad de documentos que se devolverán. |
||
|
filter clause |
string |
No |
Establece las condiciones de filtrado. |
||
|
sort clause |
string |
No |
Establece las condiciones de ordenamiento de documentos. Solo se admite el ordenamiento por un único campo de tipo int. Esta limitación aplica a la API v3 y a los SDK. |
||
|
fetch_fields parameter |
string |
No |
Especifica qué campos de la aplicación se devolverán. |
Resultado devuelto
|
Parámetro |
Tipo |
Descripción |
|
status |
string |
Resultado de la ejecución. |
|
request_id |
string |
ID del registro de consulta. Se utiliza principalmente para la solución de problemas. |
|
result |
string |
Resultado real. Incluye información como el tiempo de consulta ( |
|
errors |
string |
Contenido del error. |
Actualmente, la API de scroll solo admite los formatos de respuesta fulljson y json.
Ejemplo de scroll
En la cláusula config, el parámetro start no es válido. Utilice el parámetro hit para establecer la cantidad de documentos que se recuperarán en cada lote. Funciones como aggregate, distinct y expresiones de ordenamiento preliminar y fino no son válidas. La cláusula sort solo admite ordenamiento por un único campo de tipo int. No se admiten consultas de scroll en múltiples aplicaciones. Si proporciona un scroll_id no válido, se reportará un error. Los formatos de respuesta admitidos son fulljson y json. La primera consulta solo devuelve un scroll_id y ningún dato de documento. Debe realizar otra consulta y proporcionar el scroll_id de la respuesta anterior para recuperar los datos.
Primera solicitud
Este ejemplo omite encabezados de solicitud, codificación y otros factores.
http://$host/v3/openapi/apps/app_schema_demo/search?query=config=start:0,hit:1,format:fulljson,rerank_size:200&&query=name:'search'&&sort=+id&&filter=id>0&search_type=scan&scroll=1m&fetch_fields=id;name;phone;int_arr;literal_arr;float_arr;cate_id
Respuesta exitosa
{
"status": "OK",
"request_id": "150150574119953661605242",
"result": {
"searchtime": 0.005029,
"total": 1,
"num": 0,
"viewtotal": 1,
"scroll_id": "eJxtUMtuhDAM/BrvOYQC5cABdulvRFFIirsm2TpBavv1Ndut1EMlS36NZ0Y2ZHMxbueceAjIuWCMnrPjRITLyfzZm83y9V QVGT8x80U3PxQNUqieVZV1/an4ItbTUBPSx5wgXqKdvOSbmuKR8ZYjGWWirB4tvToAiX7u3G2eCNK77vnz8GlGPAV6suKBeqxAn0OiTd7NGEnesspyoyFLF6hecn4JUKjVgp0K3FnkfMfIyPoDuYWegX9GeYOpicY9TG8gwOSuBL04X1 MMg3ROwCesLlG6X7a2o=",
"items": [],
"facet": []
},
"errors": [],
"tracer": ""
}
Solicitudes subsiguientes
Este ejemplo omite detalles como encabezados de solicitud y codificación.
http://$host/v3/openapi/apps/app_schema_demo/search?fetch_fields=id;name;phone;int_arr;literal_arr;float_arr;cate_id&query=config=start:0,hit:1,format:fulljson,rerank_size:200&&query=name:'search'&&sort=+id&&filter=id>0&scroll=1m&scroll_id=eJxtUMtuhDAM/BrvOYQC5cABdulvRFFIirsm2TpBavv1Ndut1EMlS36NZ0Y2ZHMxbueceAjIuWCMnrPjRITLyfzZm83y9V+QVGT8x80U3PxQNUqieVZV1/an4ItbTUBPSx5wgXqKdvOSbmuKR8ZYjGWWirB4tvToAiX7u3G2eCNK77vnz8GlGPAV6suKBeqxAn0OiTd7NGEnesspyoyFLF6hecn4JUKjVgp0K3FnkfMfIyPoDuYWegX9GeYOpicY9TG8gwOSuBL04X1+MMg3ROwCesLlG6X7a2o=
Valor devuelto
{
"status": "OK",
"request_id": "150150574119952551519970",
"result": {
"searchtime": 0.006293,
"total": 1,
"num": 1,
"viewtotal": 1,
"scroll_id": "eJxNT9tugzAM/RrznIRC4YEHaNlvRFFIhteQtE6Qtn39TNdJk2z5dnx8rIPJRdudcqKhl60Uir2Vp06ISv8b6s3QbZCVzpaCdp93XXBzg2wEW9MJ2dWq8q7YVXt0YckDLlBP0WyOw31N8YgYizZEnAUsjkx4VT4k8zexpjiNS/XYHX0NNkWP71BfVyxQjxLUxSfazFH4PYSPnCL3iMniDZq3jN98aFRCgGrZniy8/itkBHWGuYVeQH+B+QzTCUZ1NJ9gj4FVMfrQPr8Y+Hk+dgU14fIDVhtfTw==",
"items": [
{
"fields": {
"cate_id": "0",
"float_arr": "0",
"id": "1",
"int_arr": "0",
"literal_arr": "search",
"name": "search",
"phone": "123****5678",
"index_name": "app_schema_demo"
},
"property": {},
"attribute": {},
"variableValue": {},
"sortExprValues": [
"1"
]
}
],
"facet": []
},
"errors": [],
"tracer": ""
}