Documentation : Créer une requête

Créer une requête

Requêter les API Pertinence.

L'API Search permet de rechercher les résultats pertinents dans votre index.

Base URL + Endpoint :

POST https://pertinence.io/api/v1/search/

Variables POST à envoyer dans le corps du message HTTP :

login : votre identifiant communiqué par l'équipe Pertinence

key : votre clé communiquée par l'équipe Pertinence

query : JSON selon la syntaxe MatchQL

API Compatibility - Paramètres

L'API Compatibility permet d'évaluer le score de compatibilité entre des critères et des documents (résultats).

Base URL + Endpoint :

POST https://pertinence.io/api/v1/compatibility/

Variables POST à envoyer dans le corps du message HTTP :

login : votre identifiant communiqué par l'équipe Pertinence

key : votre clé communiquée par l'équipe Pertinence

query : JSON selon la syntaxe MatchQL

Code retour HTTP

L'API peut retourner les codes HTTP suivants :

200 : succès de la requête. Réponse JSON envoyée

400 : mauvaise requête. Généralement envoyé lorsque l'objet JSON query est incorrect

401 : non authentifié. Envoyé lorsque la paire login / key n'est pas reconnue

500 : erreur interne. Contactez l'équipe Pertinence

Réponse JSON

Si la requête est correcte, l'API retourne un JSON. Exemple :

{
	"execution_time": "53 ms",
	"total_results": {
		"operator": "greater_than_or_equal",
		"value": 10000
	},
	"provided_results": {
		"from": 0,
		"size": 20
	},
	"results": [
		{
			"matching": {
				"matched_criteria": [2, 5, 6, 9],
				"matched_fields": ["price", "name", "region", "date"],
				"unmatched_criteria": [4, 10],
				"unmatched_fields": ["rating", "color"],
				"scoring_percentage": 87
			},
			"fields": {
				"id": 125,
				"region": "France",
				"color": "red",
				"price": 25000
			}
		}, {
			"matching": {
				"matched_criteria": [2, 10],
				"matched_fields": ["price", "color"],
				"unmatched_criteria": [4, 5, 6, 9],
				"unmatched_fields": ["rating", "name", "region", "date"],
				"scoring_percentage": 61
			},
			"fields": {
				"id": 95,
				"region": "France",
				"color": "blue",
				"price": 21500
			}
		},
		...
	]
}
Propriété Type Commentaire
execution_time string Temps (en ms) mis par le moteur pour trouver les résultats pertinents
total_results object Nombre total de résultats disponibles pour la query exécutée
total_results.operator string Le moteur limite le nombre de résultats disponibles à 10000 au maximum. Lorsqu'il y a plus de 10000 résultats disponibles alors operator vaut greater_than_or_equal et value vaut 10000.
Sinon, operator vaut equal et value vaut le nombre total de résultats disponibles
total_results.value integer
provided_results object Pagination des résultats
provided_results.from integer Offset du premier résultat du tableau results
provided_results.size integer Nombre de résultats du tableau results
results array Liste des résultats
results[n].matching object Objet qui détaille le matching entre le résultat et la query
results[n].matching.matched_criteria array Liste d'index des critères (du tableau criteria de la query) qui ont matché avec le résultat.
results[n].matching.matched_fields array Liste des noms de champs (du tableau criteria de la query) qui ont matché avec le résultat.
results[n].matching.unmatched_criteria array Liste d'index des critères (du tableau criteria de la query) qui n'ont pas matché avec le résultat.
results[n].matching.unmatched_fields array Liste des noms de champs (du tableau criteria de la query) qui n'ont pas matché avec le résultat.
results[n].matching.scoring_percentage integer Score en pourcentage (%) entre les critères de la query et le résultat trouvé. Ce score est calculé par un algorithme propre au moteur Pertinence. Il dépend notamment de la pondération du critère et de sa priorité
fields object Liste des Champs / Valeurs (du document matché) demandées en retour de l'API dans la query via la propriété return.fields

Exemples

Exemples de requêtes vers l'API Search qui se basent sur l'index de la démo en ligne pour l'immobilier

Exemple en ligne de commande avec cURL


curl -XPOST 'https://pertinence.io/api/v1/search/' -d 'login=pertinence&key=ymqs8ngTkAK5H5vNMWR9bqwcENeevaFexEcR4WbN95tbKsTddjhW6LPhSE8Yx4Ed&query={"return":{"fields":["id","title_formatted","price"],"from":0,"size":20,"sort":[{"field":"updated_date","order":"desc"}]},"criteria":[{"field":"region_name","priority_weight":"necessary","priority_order":"default","clause":[{"operator":"match","expression":"Occitanie"}]},{"field":"price","priority_weight":"mandatory","priority_order":1,"clause":[{"operator":"greater_than_or_equal","expression":1000000}]}]}'

✎ Éditer ou exécuter cette requête en ligne : https://reqbin.com/c-h6q33csk

Exemple en PHP

<?php

	//Url of the API
	$url	= "https://pertinence.io/api/v1/search/";

	//Variables in the body of the post request
	$login	= "pertinence";
	$key	= "ymqs8ngTkAK5H5vNMWR9bqwcENeevaFexEcR4WbN95tbKsTddjhW6LPhSE8Yx4Ed";
	$query	= '{"return":{"fields":["id","title_formatted","price"],"from":0,"size":20,"sort":[{"field":"updated_date","order":"desc"}]},"criteria":[{"field":"region_name","priority_weight":"necessary","priority_order":"default","clause":[{"operator":"match","expression":"Occitanie"}]},{"field":"price","priority_weight":"mandatory","priority_order":1,"clause":[{"operator":"greater_than_or_equal","expression":1000000}]}]}';

	$postdata = http_build_query(
		array(
			'login' => $login,
			'key' => $key,
			'query' => $query
		)
	);

	//Request options
	$opts = array('http' =>
		array(
			'method'  => 'POST',
			'header'  => 'Content-type: application/x-www-form-urlencoded',
			'content' => $postdata
		)
	);
	
	//Make request
	$context = stream_context_create($opts);
	$result = file_get_contents($url, false, $context);

	//Response
	echo $result;

?>

✎ Éditer ou exécuter cette requête en ligne : http://tpcg.io/eSWXKAe3

MatchQL ►

Contactez-nous

Vous souhaitez implémenter du Matching ou du Scoring sur votre site ou votre application ? Nous sommes à votre écoute pour vous accompagner.
Réponse rapide !