Le système propose une syntaxe de recherche riche pour répondre aux besoins de recherche dans divers scénarios.
URL
/v3/openapi/apps/$app_name/search?fetch_fields=name&query=config=format:fulljson&&query=name:'zhangsan'&&sort=id
$app_name : nom de l'application. Les éditions Premium et Standard sont des versions multi-applications. Vous devez spécifier un nom d'application pour accéder à une application en service.
L'URL précédente omet les en-têtes de requête, l'encodage et d'autres facteurs.
L'URL précédente omet l'adresse hôte permettant d'accéder à l'application.
Pour les définitions, l'utilisation et les exemples des paramètres de requête dans l'URL précédente, consultez la section Paramètres de requête ci-dessous.
Protocole de requête
HTTP
Méthode de requête
GET
Format pris en charge
JSON
Paramètres de requête
Pour plus de détails sur la concaténation des paramètres de requête, consultez le document Mécanisme de signature de l'API v3.
|
Paramètre |
Type |
Obligatoire |
Valeurs valides |
Valeur par défaut |
Description |
|
query |
string |
Oui |
Corps principal de la recherche. Ce paramètre ne peut pas être vide. Il prend en charge des clauses telles que config, query, sort, filter, aggregate, distinct et kvpair. |
||
|
fetch_fields |
string |
Non |
Tous les champs affichables. |
Spécifie les champs à renvoyer dans les résultats de la requête. Séparez plusieurs champs par des points-virgules ( |
|
|
disable |
string |
Non |
Désactive les fonctionnalités de paramètres spécifiées qui sont actives. |
||
|
first_rank_name |
string |
Non |
Nom de l'expression de tri approximatif par défaut dans le système. |
Définit le nom de la fonction de tri approximatif. Un seul nom de tri approximatif est pris en charge. |
|
|
second_rank_name |
string |
Non |
Nom de l'expression de tri par défaut pour le service |
Définit le nom de la fonction de tri fin. Un seul nom de tri fin est pris en charge. |
|
|
user_id |
string |
Non |
Identifie l'utilisateur final qui a initié la demande de recherche actuelle. Ce paramètre peut être défini sur l'une des valeurs suivantes, classées par ordre de priorité décroissant : 1. L'ID de connexion à long terme de l'utilisateur final. 2. L'IMEI de l'appareil mobile de l'utilisateur final. |
||
|
re_search |
string |
Non |
Définit la politique de re-recherche. Actuellement, vous ne pouvez définir qu'une politique basée sur le seuil total de correspondances. |
||
|
biz |
string |
Non |
Décrit les informations commerciales liées à la demande, telles que le type d'activité à l'origine de la demande. |
||
|
summary |
string |
Non |
Obtient la configuration du résumé des résultats de recherche du système. |
Configure le résumé des résultats de recherche. Vous pouvez spécifier des champs pour la mise en surbrillance, la troncature et d'autres opérations. |
|
|
clause de requête |
string |
Oui |
Définit les conditions de recherche. |
||
|
clause de configuration |
string |
Non |
Définit le format des données et le nombre de documents à renvoyer. |
||
|
clause de filtre |
string |
Non |
Définit les conditions de filtrage. |
||
|
clause de tri |
string |
Non |
Définit les conditions de tri des documents. Seul le tri par un champ unique de type int est pris en charge. Cette limitation s'applique à l'API v3 et aux SDK. |
Utilisation des paramètres de requête
query : Le paramètre
querypeut combiner plusieurs clauses pour répondre à divers besoins de recherche. Les clauses au sein du paramètrequerysont connectées par&&.fetch_fields : La taille des données textuelles renvoyées a un impact significatif sur les performances. Récupérez uniquement les champs requis. Si ce paramètre est configuré dans le SDK ou l'API, il remplace la configuration correspondante dans la console.
qp : Si ce paramètre est configuré dans le SDK ou l'API, il remplace la configuration correspondante dans la console.
Remarque : Vous pouvez consulter les effets et les résultats de qp sur la page de test de recherche dans la console. L'API et les SDK n'exposent pas actuellement ces informations.
-
disable : Utilisez ce paramètre pour désactiver des fonctionnalités pour des paramètres tels que
qp,summary,first_rank,second_ranketre_search.Description de la fonctionnalité
Ce paramètre contrôle la désactivation de certaines fonctionnalités lors d'une requête.
Vous pouvez désactiver des fonctionnalités telles que l'analyse de requête, la mise en surbrillance, le tri approximatif et fin, ainsi que la re-recherche.
Format du paramètre :
disable=function[;function] function=function_name[:function_param]-
Exemples :
Pour désactiver l'analyse de requête, définissez
disable=qp.Pour désactiver la fonctionnalité
spell_checkdans l'analyse de requête, définissezdisable=qp:spell_check.Pour désactiver la re-recherche, définissez
disable=re_search.
first_rank_name : Si ce paramètre est configuré dans le SDK ou l'API, il remplace la configuration correspondante dans la console.
second_rank_name : Si ce paramètre est configuré dans le SDK ou l'API, il remplace la configuration correspondante dans la console.
-
user_id :
Lorsque vous définissez ce paramètre dans une demande de recherche, la valeur de
user_iddoit être encodée en URL.
-
raw_query :
Description de la fonctionnalité
Ce paramètre spécifie la requête de recherche originale saisie par l'utilisateur final.
Format du paramètre :
raw_query=contentcontent : la requête de recherche originale.
-
re_search :
Description de la fonctionnalité
Ce paramètre définit la politique de re-recherche. Actuellement, vous ne pouvez définir qu'une politique basée sur le seuil total de correspondances.
Format du paramètre :
re_search=strategy:threshold,params:total_hits#${COUNT}COUNT : la limite supérieure pour
total_hitsqui déclenche une re-recherche. Une re-recherche est effectuée sitotal_hitsest inférieur à COUNT.-
Exemple :
re_search=url_encode(strategy:threshold,params:total_hits#6)
-
biz :
Description de la fonctionnalité
-
Ce paramètre décrit les informations commerciales liées à la demande, telles que le type d'activité à l'origine de la demande.
Format du paramètre :
biz=type:$TYPE type : le type de trafic. Vous pouvez définir la valeur. Vous pourrez ensuite utiliser cette valeur pour distinguer différentes sources de trafic dans les rapports.
-
Exemple :
biz=type:home_page
-
vector_threshold :
-
Description de la fonctionnalité
Ce paramètre définit le seuil de score vectoriel pour la récupération des documents lors d'une recherche vectorielle. Seuls les documents dont le score vectoriel est inférieur à cette valeur sont renvoyés.
-
Format du paramètre :
La valeur est un nombre à virgule flottante.
Ce paramètre est facultatif. S'il n'est pas défini, le système utilise un seuil intégré.
vector_threshold=14.0
-
Résumé :
Les paramètres
summary_element_prefixetsummary_element_postfixdoivent être définis simultanément.Le paramètre
summary_elementet la paire (summary_element_prefix,summary_element_postfix) s'influencent mutuellement. Une configuration ultérieure écrase une configuration antérieure.Il n'est actuellement pas possible de configurer séparément le résumé et la mise en surbrillance.
Si ce paramètre est configuré dans le SDK ou l'API, il écrase la configuration correspondante dans la console.
|
Paramètre |
Type |
Obligatoire |
Valeurs valides |
Valeur par défaut |
Description |
|
summary_field |
string |
Oui |
Champ à résumer. |
||
|
summary_element |
string |
Non |
em |
Une balise de mise en surbrillance est une balise HTML sans ses chevrons. |
|
|
summary_ellipsis |
string |
Non |
… |
Points de suspension à la fin du résumé. |
|
|
summary_snipped |
int |
Non |
1 |
Nombre d'extraits de résumé à sélectionner. |
|
|
summary_len |
string |
Non |
Longueur de l'extrait de résumé à afficher. |
||
|
summary_element_prefix |
string |
Non |
Préfixe pour la mise en surbrillance. Il doit s'agir d'une balise HTML complète, telle que <em>. |
||
|
summary_element_postfix |
string |
Non |
Suffixe pour la mise en surbrillance. Il doit s'agir d'une balise HTML complète, telle que </em>. |
Résultat de retour
|
Paramètre |
Type |
Description |
|
status |
string |
Résultat de l'exécution. |
|
request_id |
string |
ID de l'enregistrement de requête. Principalement utilisé pour le dépannage. |
|
result |
JSON |
Résultat réel. Il inclut des informations telles que le temps de requête ( |
|
errors |
list |
Code d'erreur et message. |
searchtime : Temps, en secondes, consommé par le moteur pour traiter la requête.
Différences entre
total,viewtotaletnum:totalcorrespond au nombre de résultats répondant aux conditions de requête dans le moteur, sans prendre en compte la clauseconfig. Cette valeur est une estimation lorsqu'il y a beaucoup de résultats et est généralement utilisée à des fins d'affichage.viewtotalreprésente le nombre maximal de résultats que le moteur renvoie pour des raisons de performances et de pertinence. Pour paginer les résultats,start+hitdoit être inférieur àviewtotal.numest le nombre réel d'éléments renvoyés pour la requête actuelle. Cette valeur est limitée par les paramètresstartethitde la clauseconfiget ne dépasse pas la valeurhit.compute_cost : Tableau contenant un seul élément de type map.
index_nameest l'ID de l'application etvalueest le nombre d'unités de calcul logique (LCU) consommées par la requête.items : Contient les données récupérées. Le paramètre fields contient le contenu des résultats de recherche.
variableValue : Résultat de retour d'un paramètre personnalisé, tel qu'une valeur de distance. Le nœud
variableValues'affiche uniquement si le paramètre format de la clause config est défini surxmloufulljson. Par défaut, ce nœud ne s'affiche pas au formatjson.sortExprValues : Score de tri du document correspondant.
facet : Stocke les informations renvoyées par la clause Aggregate.
Type de champ tableau : Si un champ tableau est renvoyé au format
jsonoufulljson, les données sont séparées par\t. Si elles sont renvoyées au formatxml, les données sont séparées par des espaces.
Exemple de recherche
Réponse 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"
}
Réponse d'erreur
{
"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"
}
Remarque : Un statut
FAILindique qu'une erreur s'est produite et qu'aucun résultat n'est renvoyé. Toutefois, dans certains cas, une erreur et des résultats peuvent être renvoyés simultanément. Dans ces situations, le statut estOK. Par exemple, si une erreur1000 server error(délai d'attente de recherche dépassé) ou une erreur2112(index pour le tri fin non spécifié) se produit, des résultats peuvent tout de même être renvoyés.
Analyse par défilement (Scroll scan)
Une recherche traditionnelle est conçue pour récupérer les résultats les plus pertinents dans les plus brefs délais. Par conséquent, le nombre de résultats de recherche est limité. Par exemple, la méthode de recherche peut récupérer un maximum de 5 000 documents. Dans certains scénarios, vous pouvez avoir besoin de récupérer davantage de résultats à des fins d'analyse. Vous pouvez utiliser l'API scroll pour récupérer un plus grand nombre de résultats.
Clauses prises en charge
Clause
query.Clause
config. Le paramètrestartn'est pas valide dans cette clause.Clause
filter.Clause
sort. Cette clause prend uniquement en charge le tri par un seul champ de typeintet est limitée à l'API v3 et aux SDK.
URL
Requête initiale
/v3/openapi/apps/$app_name/search?search_type=scan&scroll=1m&query_parameters
Requêtes suivantes
/v3/openapi/apps/$app_name/search?scroll_id=$scroll_id&scroll=1m&query_parameters
$app_name : Nom de l'application.
L'URL ci-dessus omet l'adresse hôte pour accéder à l'application.
Les URL de requête de défilement ci-dessus omettent les en-têtes de requête, le contenu des paramètres de requête, l'encodage et d'autres facteurs. Pour une URL de requête de défilement complète, consultez l'exemple ci-dessous.
La méthode de défilement offre des fonctionnalités limitées et ne prend pas en charge la plupart des fonctionnalités. Pour plus d'informations sur les limitations spécifiques, consultez les notes en bas de page.
Protocole de requête
HTTP
Méthode de requête HTTP
GET
Format pris en charge
JSON
Paramètres de requête
|
Paramètre |
Type |
Obligatoire |
Valeurs valides |
Valeur par défaut |
Description |
|
scroll |
STRING |
Oui |
Week, Day, Hour, minute, second |
Spécifiez la durée de validité pour la prochaine requête scroll. Vous devez définir ce paramètre pour chaque requête. Par exemple, |
|
|
search_type |
STRING |
Oui |
scan |
Ce paramètre est requis pour la première requête. Il n'est pas nécessaire pour les requêtes suivantes. Les requêtes ultérieures sont effectuées en spécifiant le |
|
|
scroll_id |
string |
Oui |
Le premier appel à la méthode scroll renvoie un |
||
|
query clause |
string |
Oui |
Définit les conditions de recherche. |
||
|
config clause |
string |
Oui |
Définit le format des données et le nombre de documents à renvoyer. |
||
|
filter clause |
string |
Non |
Définit les conditions de filtrage. |
||
|
sort clause |
string |
Non |
Définit les conditions de tri des documents. Seul le tri par un champ unique de type int est pris en charge. Cette limitation s'applique aux API v3 et aux SDK. |
||
|
fetch_fields parameter |
string |
Non |
Spécifiez les champs d'application à renvoyer. |
Résultat de retour
|
Paramètre |
Type |
Description |
|
status |
string |
Résultat de l'exécution. |
|
request_id |
string |
ID de l'enregistrement de requête. Principalement utilisé pour le dépannage. |
|
result |
string |
Résultat réel. Il comprend des informations telles que le temps de requête ( |
|
errors |
string |
Contenu de l'erreur. |
L'API scroll prend actuellement en charge uniquement les formats de réponse fulljson et json.
Exemple de scroll
Dans la clause config, le paramètre start est invalide. Utilisez le paramètre hit pour définir le nombre de documents à récupérer par lot. Les fonctionnalités telles que aggregate, distinct et les expressions de tri brut et fin sont invalides. La clause sort ne prend en charge que le tri par un champ unique de type int. Les requêtes scroll sur plusieurs applications ne sont pas prises en charge. Si vous fournissez un scroll_id invalide, une erreur est signalée. Les formats de réponse pris en charge sont fulljson et json. La première requête renvoie uniquement un scroll_id et aucune donnée de document. Vous devez effectuer une autre requête et fournir le scroll_id de la réponse précédente pour récupérer les données.
Première requête
Cet exemple omet les en-têtes de requête, l'encodage et d'autres facteurs.
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
Réponse réussie
{
"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": ""
}
Requêtes suivantes
Cet exemple omet des détails tels que les en-têtes de requête et l'encodage.
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=
Valeur de retour
{
"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": ""
}