Qui l'utilise ?

  • Craigslist,
  • DailyMotion,
  • Netlog,
  • Delcampe.net,
  • thepiratebay.org
  • mininova
  • opensubtitles.org
  • bcp d'autres ...

De nombreux plugins pour des produits connus existent pour exploiter l'indexation sphinx de leur structure de donnée.

  • Drupal
  • Symfony
  • phpBB
  • MovableType
  • MediaWiki
  • Phorum
  • Rails : Thinking, Ultrasphinx, acts_as_sphinx
  • ActiveRecord :Sphincter

Performances

l'indexation.

Sphinx indexe jusqu'à 10-15 Mo de texte par seconde par CPU simple core, Soit +de 60 Mo/s par serveur (sur une machine dédiée indexation).

Recherche.

Sur une machine de bureau 2-core avec 2 Go de RAM. Dans une collection de 1.000.000 document, soit 1,2 Go de textes : + de 500 requêtes/sec.

Extensibilité.

  • le plus actif Craigslist, site top-10 aux États-Unis qui sert plus de 50 millions de requêtes de recherche/jour.
  • boardreader.com, 2,000,000,000 documents, 2.0 TB of data.

Quelques exemples

recherche via PHP et le package pecl

<?php
 
$s = new SphinxClient;
$s->setServer("localhost", 6712);
$s->setMatchMode(SPH_MATCH_ANY);
$s->setMaxQueryTime(3);
 
$result = $s->query("test");
var_dump($result);
 
?>

Recherches via mysql et SphinxSE

SELECT * FROM t1 ... 
 
... WHERE query='test it;mode=any;sort=attr_asc:group_id;!filter=group_id,3,11;';
... WHERE query='test;sort=extended:@weight desc, group_id ascindex=test1;';
... WHERE query='test;index=test1,test2,test3;weights=1,2,3;filter=group_id,1,5,19;';
... WHERE query='test;!range=group_id,5,25;';
... WHERE query='test;maxmatches=2000;groupby=day:published_ts;';
... WHERE query='test;groupby=attr:group_id;groupsort=@count desc;';
... WHERE query='test;indexweights=idx_exact,2,idx_stemmed,1;comment=marker001;select=2*a+3*b as myexpr;';

Commande d'indexation

[sh]
$ indexer --rotate --all --quiet --noprogress mybigindex
$ indexer mysmallindex mybigindex
$ indexer --config /home/myuser/sphinx.conf myindex
$ indexer --config /home/myuser/sphinx.conf --all
$ indexer myindex --buildstops word_freq.txt 1000
$ indexer myindex --buildstops word_freq.txt 1000 --buildfreqs
$ indexer --merge main delta --rotate
$ indexer --merge main delta --merge-dst-range deleted 0 0

Un fichier de remplacement

[fichier de remplacements]
AT & T => AT&T
AT&T => AT&T
Standarten   Fuehrer => standartenfuhrer
Standarten Fuhrer => standartenfuhrer
MS Windows => ms windows
Microsoft Windows => ms windows
C++ => cplusplus
c++ => cplusplus
C plus plus => cplusplus