Une petite démo de ce moteur de recherche est disponible ici. Cette démo est réalisée avec un ensemble de données de 1000 films de 2006 et 2016. Les résultats sont fournis au fur et à mesure que vous tapez.
installez cette bibliothèque via Composer :
composer require vfou/php-search 1.1
en bref :
Jetez un œil à la page de fonctionnalités pour une liste plus complète
Le moteur de recherche est livré avec un exemple de schéma qui vous permet de prendre rapidement en main la bibliothèque.
au début, vous devez charger le moteur de recherche.
use VFou Search Engine ;
$ engine = new Engine ();
Vous pouvez donner un tableau en paramètre du constructeur de classe, voir la page de configuration du wiki pour plus d'informations.
En construisant le moteur, un répertoire apparaîtra à côté de votre fichier d'index :
(Tous ces répertoires peuvent être modifiés avec le tableau de configuration)
Dans un premier temps, vous devez donner au moteur quelque chose à rechercher. Nous allons créer des documents et demander au moteur de les indexer.
$ doc = [
" id " => 1 ,
" type " => " example-post " ,
" title " => " this is my first blog post ! " ,
" content " => " I am very happy to post this first post in my blog ! " ,
" categories " => [
" party " ,
" misc. "
],
" date " => " 2018/01/01 " ,
" comments " => [
[
" author " => " vincent " ,
" date " => " 2018/01/01 " ,
" message " => " Hello world! "
],
[
" author " => " someone " ,
" date " => " 2018/01/02 " ,
" message " => " Welcome ! "
]
]
];
$ engine -> update ( $ doc );
$ doc = [
" id " => 2 ,
" type " => " example-post " ,
" title " => " This is the second blog post " ,
" content " => " a second one for fun " ,
" date " => " 2018/01/05 " ,
" categories " => [
" misc. "
],
" comments " => [
[
" author " => " someone " ,
" date " => " 2018/01/05 " ,
" message " => " Another one ?! "
]
]
];
$ engine -> update ( $ doc );
Remarque : vous pouvez également placer ces deux documents dans un seul tableau et utiliser la fonction updateMultiple() pour indexer plusieurs documents à la fois.
Maintenant que vos documents sont indexés, vous pouvez utiliser la fonction de recherche et récupérer les résultats :
$ response = $ engine -> search ( ' second post ' );
var_dump ( $ response );
$ response = $ engine -> search ( ' post ' );
var_dump ( $ response );
Pour plus d'informations sur cette bibliothèque, comme l'utilisation de fonctionnalités plus avancées, rendez-vous sur la page wiki de ce référentiel
Le panneau d'administration est une classe qui doit être instanciée puis exécutée. Ce n'est pas un fichier appelable, vous devrez donc l'appeler via un fichier php normal :
<?php
use VFou Search AdminPanel ;
// include the composer autoload file, modify the path if needed
require " vendor/autoload.php " ;
// securize your file access or directly here
// if($_SERVER['REMOTE_ADDR'] != "127.0.0.1") exit('unauthorized');
// instantiate the panel and then run it
$ admin = new AdminPanel ();
echo $ admin -> run ();
le constructeur de l'AdminPanel accepte comme premier paramètre le même tableau de configuration que celui que vous pouvez utiliser pour instancier le moteur, et vous souhaiterez le transmettre si vous avez des schémas personnalisés. (sinon le panneau ne fonctionnera pas correctement)
Plus d'informations dans le manuel du panneau d'administration
Cette bibliothèque est sous licence MIT. Voir la licence complète