Créer un moteur de recherche en PHP avec Sphinx

Mars 2013

Sphinx est un moteur de recherche fulltext qui permet d'indexer et de rechercher dans du contenu textuel de manière plus efficace que les méthodes traditionnelles (basé sur des requêtes SQL).

Sphinx est particulièrement adapté au web et s'intègre très bien avec PHP/MySQL, il permet même d'indexer directement des tables MySQL, en plus des pages web HTML et de documents XML. Il est beaucoup plus simple à utiliser et léger que Apache Lucene, et est utilisé par des références comme le site Dailymotion.

Installer Sphinx

Comme beaucoup d'outils du monde PHP, Sphinx est conçu pour fonctionner sur un système Unix. Pour autant, il est parfaitement possible de l'installer sur Windows pour développer avec EasyPHP ou WAMP.

Voici là page où télécharger Sphinx : http://sphinxsearch.com/downloads/release/.

L'outil se présente sous la forme d'un serveur, qui tourne en permanence (comme un serveur de base de donnée), sur Windows on utilise un service pour ce type de programme. Consultez ce tutoriel qui détaille toute l'installation sous Windows : how-to-install-and-implement-sphinx.

Construire l'index de recherche

Après avoir préparé le fichier de configuration sphinx.conf, on lance l'indexation en appelant le programme indexer en ligne de commande :

C:\sphinx\bin\indexer.exe --rotate --config C:\sphinx\sphinx.conf --all

La page du jour est collage spécial avec excel, bonne lecture.

Interroger l'index

La communication entre PHP et le serveur Sphinx se fait à l'aide d'une API à inclure, qui contient l'objet SphinxClient :

<?php
include 'sphinxapi.php';

$sc = new SphinxClient();
$sc->SetServer('127.0.0.1', 9312);
$sc->SetMatchMode(SPH_MATCH_ALL);

$result = $sc->Query('bidule');

if( $result === false ){
	echo 'ERREUR: '.$sc->GetLastError();
	die();
}

if( $sc->GetLastWarning() ){
	echo 'WARNING: '.$sc->GetLastWarning();
}

print_r($result);
?>

La fonction Query retourne un tableau contenant différentes informations (métadonnées) ainsi que les résultats.

Encore faim ? allez lire ça : effet maquette !

0 commentaire
facultatif
Facebook Twitter RSS Email
Forum Excel
Venez découvrir le nouveau forum excel question/réponse à la stackoverflow.com !
Forum Excel
hit parade n'en a rien a foutre du W3C Positionnement et Statistiques Gratuites Vincent Paré