37

Recherchez un document

searchindex

GET https://bezillion.com/api/v1/searchindex?login=&password=

loginVotre code d'identification.
passwordVotre mot de passe.
qRequête.
fqFiltre de requête.
hlMise en évidence.
flChamps additionnels.
pagesizeNombre de résultats par page.
pageNuméro de la page de résultats.

q - recherche dans le texte, *:* par défaut.

fq - filtre sur les champs de l'index.

hl : 1 - extraits du texte avec mise en évidence des termes trouvés.

fl : 1 - valeurs des champs additionnels indexés avec un document typé. NOTE : Par défaut, seuls les champs additionnels présents dans fq sont retournés.

pagesize - nombre de résultats à retourner par page entre 10 et 100, 10 par défaut.

page - numéro de la page de résultats à retourner, 1 par défaut.

Vous pouvez tester cette fonction dans l'interface de votre espace personnel.

Recherche

 q
 fq

 hl  fl

 2   • 

2022-11-28 02:00 45 en fox.txt

The quick brown fox
jumps over
the lazy dog.

2022-11-28 02:00 30,9k en fox.jpg

The quick brown fox
jumps over
the lazy dog.

The quick brown fox
jumps over
the lazy dog.

Indexez le fichier :

$ curl -s --fail --show-error -X POST "https://bezillion.com/api/v1/indexfile?login=abcdef&password=ABCDEF" -F "file=@fox.txt" -o -

Recherchez le terme fox :

$ curl -s --fail --show-error -X GET "https://bezillion.com/api/v1/searchindex?login=abcdef&password=ABCDEF&q=fox&hl=1"
{"status":"success","data":{"count":1,"docs":[{"date":1669597200,"file":"fox.txt","size":45,"id":"12345678-9abc-def0-1234-56789abcdef0","lang":"en","from":"local","extra":"","stored":true,"score":0.45427877,"hl":["The quick brown fox\njumps over\nthe lazy dog.\n\n"]}]}}

sushi.png

Indexez le fichier :

$ curl -s --fail --show-error -X POST "https://bezillion.com/api/v1/indexfile?login=abcdef&password=ABCDEF" -F "lang=eng+jpn+spa" -F "psm=6" -F "file=@sushi.png" -o -

Recherchez le terme pollo :

$ curl -s --fail --show-error -X GET "https://local.bezillion.com/api/v1/searchindex?login=abcdef&password=ABCDEF&q=pollo&hl=1"
{"status":"success","data":{"count":1,"docs":[{"date":1669597200,"file":"sushi.png","size":14394,"id":"12345678-9abc-def0-1234-56789abcdef0","lang":"en","from":"local","extra":"","stored":true,"score":0.5125473,"hl":["I eat \u3059\u3057 y Pollo\n\n"]}]}}

NOTE : Si une recherche ne retourne rien, le champ data vaut null 

{"status":"success","data":null}

Recherchez le terme polo :

$ curl -s --fail --show-error -X GET "https://local.bezillion.com/api/v1/searchindex?login=abcdef&password=ABCDEF&q=polo"
{"status":"fail","data":{"count":0,"suggest":["pollo"]}}

Recherchez le fichier sushi.*:

$ curl -s --fail --show-error -X GET "https://bezillion.com/api/v1/searchindex?login=abcdef&password=ABCDEF&fq=file:sushi.*"
{"status":"success","data":{"count":1,"docs":[{"date":1669597200,"file":"sushi.png","size":14394,"id":"12345678-9abc-def0-1234-56789abcdef0","lang":"en","from":"local","extra":"","stored":true,"score":1,"hl":false}]}}

Téléchargez le code de la fonction sendget de la librairie iZend. Copiez le fichier dans l'espace de votre application.

NOTE : Reportez-vous à la page Appelez l'API du service pour une description de la fonction sendget.

Ajoutez le fichier searchindex.php avec le contenu suivant :

  1. require_once 'sendhttp.php';

Charge le code de la fonction sendget.

  1. function searchindex($login, $password, $q=false, $fq=false, $pagesize=10, $page=1, $hl=true, $fl=null) {

Définit la fonction searchindex. $login est votre code d'identification. $password est votre mot de passe.

  1.     $curl = 'https://bezillion.com/api/v1/searchindex';

Met $curl à l'URL de l'action searchindex de l'API.

  1.     $args = array(
  2.         'login'     => $login,
  3.         'password'  => $password,
  4.         'q'         => $q,
  5.         'fq'        => $fq,
  6.         'hl'        => $hl,
  7.         'fl'        => $fl,
  8.         'pagesize'  => $pagesize,
  9.         'page'      => $page,
  10.     );

Prépare la liste des arguments du GET : le code d'identification et le mot de passe du compte de l'utilisateur, la requête, le filtre de la requête, le nombre de documents par réponse, le numéro de la page.

  1.     $response=sendget($curl, $args);

Envoie la requête HTTP avec sendget.

  1.     if (!$response or $response[0] != 200) {
  2.         return false;
  3.     }

Si $response vaut false, le serveur est inaccessible. Si $response[0] ne contient pas le code de retour HTTP 200 Ok, une erreur d'exécution s'est produite. En cas d'erreur, searchindex retourne false.

  1.     $r=json_decode($response[2], true);

Décode les données retournées en JSON.

  1.     return $r['data'];
  2. }

Retourne le résultat de la recherche si l'action a réussi.

EXEMPLE

En supposant que vous avez sauvé les fichiers sendhttp.php et searchindex.php dans le répertoire courant, lancez PHP en mode interactif, chargez la fonction searchindex et appelez-la avec en arguments votre code d'identification et votre mot de passe, un terme de recheche :

$ php -a
php > require_once 'searchindex.php';
php > $r=searchindex('abcdef', 'ABCDEF', 'pollo');
php > $print_r($r);
Array
(
    [count] => 1
    [docs] => Array
        (
            [0] => Array
                (
                    [file] => sushi.png
                    [size] => 14394
                    [extra] => 
                    [id] => 12345678-9abc-def0-1234-56789abcdef0
                    [date] => 1669597200
                    [from] => local
                    [lang] => en
                    [score] => 0.8451465
                    [stored] => 1
                    [hl] => Array
                        (
                            [0] => I eat すし y Pollo
                        )
                )
        )
)
php > $r=searchindex('abcdef', 'ABCDEF', 'polo' );
php > $print_r($r);
Array
(
    [count] => 0
    [suggest] => Array
        (
            [0] => pollo
        )
)
php > $r=searchindex('abcdef', 'ABCDEF', false, 'file:sushi.*');
php > $print_r($r);
Array
(
    [count] => 1
    [docs] => Array
        (
            [0] => Array
                (
                    [file] => sushi.png
                    [size] => 14394
                    [extra] => 
                    [id] => 12345678-9abc-def0-1234-56789abcdef0
                    [date] => 1669597200
                    [from] => local
                    [lang] => en
                    [score] => 1
                    [stored] => 1
                    [hl] => 
                )
        )
)
php > $r=searchindex('abcdef', 'ABCDEF', 'pollo', false, 2);
php > $print_r($r);
php >
php > quit
VOIR AUSSI

Appelez l'API du service, Indexez un document, Reliez un document, Désindexez un document

Commentaires