subvitaminetm/akkurate-for-search-sdk-php

PHP SDK for Akkurate For Search

v1.0.0 2020-11-23 11:30 UTC

This package is auto-updated.

Last update: 2024-10-23 20:16:16 UTC


README

Source Code

Sommaire

  • Installation
  • Utilisation
    • Créer du contenu de suggestion
    • Créer du contenu cliquable
    • Mettre à jour un contenu
    • Supprimer un contenu
  • Copyright

Installation

Pour installer la librairie, utilisez Composer. Ajoutez ces instructions à votre fichier composer.json :

composer require subvitaminetm/akkurate-for-search-sdk-php

Utilisation

Initialisez la librairie avec votre clé d'API

$akk4search = new \Akkurate4Search\Content('your_api_key');

Créer du contenu de suggestion

Un contenu de suggestion est un contenu parent. Celui-ci remontera dans les résultats de recherche mais n'ouvrira aucun document. Il apparaitra sous forme de suggestion. Si l'utilisateur clique dessus, les documents enfants (cliquables) de ce contenu seront affichés.

Retoune le contenu créé

$content = $akk4search->post([
    "name" => "Subvitamine",
    "docType" => \Akkurate4Search\ContentType::COMPANY,
    "alias" => [
        "ALIAS_1",
        "ALIAS_2",
        "ALIAS_3"
    ],
    "suggest" => true,
    "entities" => [],
    "content" => [],
    "links" => [],
    "access" => [
        'UUID_OF_USER_1',
        'UUID_OF_USER_2'
    ],
    "environments" => [
        \Akkurate4Search\Environment::BACK,
        \Akkurate4Search\Environment::FRONT
    ]
]);

Créer du contenu cliquable

Un contenu cliquable est un contenu enfant. Celui-ci remontera dans les résultats de recherche et ouvrira le lien que vous aurez défini lorsque l'utilisateur cliquera dessus.

Retourne le contenu créé

$content = $akk4search->post([
    "name" => "Invoice April 2020",
    "docType" => \Akkurate4Search\ContentType::INVOICE,
    "alias" => [
        "ALIAS#1",
        "ALIAS#2"
    ],
    "suggest" => false,
    "entities" => [
        [
            "uuid" => "uuid_of_akk4search_parent_suggestable_content",
            "name" => "name_of_akk4search_parent_suggestable_content"
        ]
    ],
    "content" => [
        "string_of_content_1",
        "string_of_content_2",
        "string_of_content_3"
    ],
    "links" => [
        [
            "url" => "https://brain.subvitamine.com/{var1}/{var2}/{var3}",
            "target" => \Akkurate4Search\TargetLink::SELF,
            "environment" => \Akkurate4Search\Environment::BACK
        ],
        [
            "url" => "https://www.subvitamine.com/blog/{var1}",
            "target" => \Akkurate4Search\TargetLink::BLANK,
            "environment" => \Akkurate4Search\Environment::FRONT
        ]
    ],
    "access" => [
        'UUID_OF_USER_1',
        'UUID_OF_USER_2'
    ],
    "environments" => [
        \Akkurate4Search\Environment::FRONT,
        \Akkurate4Search\Environment::BACK
    ]
]);

Paramètres de contenu

NomDescriptionTypeRequis
nameNom du documentstringOui
docTypeType de contenuContentTypeOui
aliasTableau de tags permettant de faire remonter des documents (ex : initiales, catégories...)array(string)Non
suggestPermet de définir si le contenu apparait dans les suggestions ou dans les résultats de recherchebooleanOui
entitiesPermet de rattacher un contenu à un document parentarrayNon
contentContenu du document au format textearrayNon
linksLiens qui seront ouverts lorsque l'utilisateur cliquera sur le résultatarrayNon
accessListe des UUID ayant accès à la ressourcearrayNon
environmentsPermet de définir les environnements d'affichagearray(Environment)Non

Mettre à jour un contenu

Permet de mettre à jour un contenu

Retourne le contenu mis à jour

$content = $akk4search->put('uuid_of_akk4search_content', $content);

Rechercher

Permet de rechercher du contenu

Pour rechercher tout type de contenu "suggestable ou non"

// recherche classique
$content = $akk4search->search(
    $environment, 
    $searchword
);

// recherche en ajoutant des restrictions d'accès
$content = $akk4search->search(
    $environment, 
    $searchword, 
    null, 
    [
        $userUUID1,
        $userUUID2
    ],
    [
        "pagination" => true, // defini si on souhaites utiliser la pagination
        "from" => 0, // équivalent du OFFSET de mysql
        "limit" => 10 // équivalent du LIMIT de mysql
    ]
);

Pour rechercher des contenus "non-suggestables"

// recherche classique
$content = $akk4search->search(
    $environment, 
    null, 
    $entityUUID
);

// recherche en ajoutant des restrictions d'accès
$content = $akk4search->search(
    $environment, 
    null, 
    $entityUUID, 
    [
        $userUUID1,
        $userUUID2
    ]
);

// recherche en ajoutant des restrictions d'accès et pagination
$content = $akk4search->search(
    $environment, 
    null, 
    $entityUUID, 
    [
        $userUUID1,
        $userUUID2
    ],
    [
        "pagination" => true,
        "from" => 5,
        "limit" => 2
    ]
);

Retourne un array contenant trois propriétés.

[
    'suggestions' => [], // tableau contenant la liste des contenus "suggestables" trouvés
    'results' => [], // tableau contenant la liste des contenus "non-suggestables" trouvés
    'options' => [ // si la pagination est utilisée, réutilisez le tableau d'options retourné pour obtenir les résultats de la page suivante
        'pagination' => true | false
        'from" => 0 | ??,
        'limit' => 10 | ??
    ]
]

Important

Si vous utilisez VueJs component for Akkurate for search, vous devrez utiliser cette fonctionnalité de recherche et il faudra impérativement retourner les résultats tel quel mais au format JSON. Voici un exemple :

$results = $akk4search->search($environment, $searchword);
ou
$results = $akk4search->search($environment, null, $entityUUID);

// return 
echo json_encode($results);

ou encore


echo json_encode($results);

Supprimer un contenu

Permet de supprimer un contenu

Retourne true(boolean) en cas de succès

$akk4search->delete('uuid_of_akk4search_content');

Supprimer tous vos contenus

Permet de supprimer tous vos contenus en une fois

Retourne true(boolean) en cas de succès

// supprimer tous vos contenus
$akk4search->deleteAll();

or

// supprimer tous vos contenus de type "DOCUMENT"
$akk4search->deleteAll(Akkurate4Search\ContentType::DOCUMENT);

Copyright

Cette librairie est protégée par le droit d'auteur © Subvitamine