192 votes

Choisir un serveur de recherche en texte intégral autonome: Sphinx ou SOLR?

Je suis à la recherche d'un stand-alone de recherche de texte intégral serveur avec les propriétés suivantes:

  • Doit fonctionner en tant que serveur autonome qui peut servir à des demandes de recherche à partir de plusieurs clients
  • Doit être capable de faire "en vrac indexation" par l'indexation du résultat d'une requête SQL: dire "SELECT id, text_to_index à PARTIR de documents;"
  • Doit être un logiciel libre et doit s'exécuter sur Linux avec MySQL comme base de données
  • Doit être rapide (règles MySQL interne de recherche en texte intégral)

Les solutions que j'ai trouvé qui ont ces propriétés sont les suivantes:

  • Solr (basé sur Lucene)
  • ElasticSearch (également basé sur Lucene)
  • Sphinx

Mes questions:

  • Comment se comparent-ils?
  • Ai-je raté des alternatives?
  • Je sais que chaque cas est différent, mais il y a certains cas où j'ai vraiment pas envie d'utiliser un certain paquet?

327voto

Mauricio Scheffer Points 70470

J'ai été en utilisant Solr avec succès depuis presque 2 ans maintenant, et n'ont jamais utilisé de Sphinx, donc, je suis évidemment biaisée. Cependant, je vais essayer d'être objectif, en citant des documents ou d'autres personnes. Je vais aussi prendre des patchs à ma réponse :-)

Similitudes:

  • Les deux Solr et le Sphinx de satisfaire tous vos besoins. Il est rapide et conçu pour rechercher et indexer de larges masses de données de manière efficace.
  • Les deux ont une longue liste de sites à fort trafic et leur utilisation (Solr, Sphinx)
  • Les deux offrent un support commercial. (Solr, Sphinx)
  • Les deux offrent de l'API client liaisons pour plusieurs plates-formes/langages (Sphinx, Solr)
  • Les deux peuvent être distribués à l'augmentation de la vitesse et de la capacité (Sphinx, Solr)

Voici quelques différences:

Questions connexes:

48voto

larf311 Points 993

Sauf si vous avez besoin d'étendre la fonctionnalité de recherche dans tous les propriétaires façon, le Sphinx est votre meilleur pari.

Sphinx avantages:

  1. Le développement et l'installation est plus rapide
  2. Beaucoup mieux (et plus rapide) de l'agrégation. C'était la cerise sur le gâteau pour nous.
  3. Pas XML. C'est ce qui a finalement décidé de sortir Solr pour nous. Nous avons dû retourner plutôt grands ensembles de résultats (pensez à des centaines de résultats), puis de les agréger nous-mêmes depuis Solr agrégation manquait. La quantité de temps pour sérialiser et à partir de XML absolument tué performance. Pour les petits ensembles de résultats, bien que, il a été parfaitement bien.
  4. Le meilleur de la documentation que j'ai vu dans une application open source

Solr avantages:

  1. Peut être prolongé.
  2. Peut frapper directement à partir d'une application web, c'est à dire, vous pouvez avoir saisie semi-automatique de recherche de type a frappé le serveur Solr directement via AJAX.

21voto

UGS Points 830

Remarque: Il ya beaucoup d'utilisateurs avec la même question en tête.

Donc, pour répondre à la question:

Qui et pourquoi?

  • Utiliser Solr si vous avez l'intention de l'utiliser dans votre application web(par exemple moteur de recherche du site). Il va certainement s'avèrent être de grands, grâce à son API. Vous aurez certainement besoin de ce pouvoir pour une web-app.

  • L'utilisation de Sphinx si vous voulez la recherche à travers des tonnes de documents/fichiers de réel rapide. C'indices de réel rapide. Je recommande de ne pas l'utiliser dans une application qui implique JSON ou de l'analyse XML pour obtenir les résultats de la recherche. L'utiliser pour direct dB recherches. Il fonctionne très bien sur MySQL.

Alternatives

Bien que ces sont les géants, il y en a beaucoup plus. Aussi, il y a ceux qui utilisent ces à la puissance de leurs personnalisée des cadres. Donc, je dirais que vous n'avez pas manqué en tout. Bien qu'il existe une elasticsearch qui a une bonne base d'utilisateurs.

19voto

lo_fye Points 4422

J'utilise Sphinx depuis presque un an maintenant, et ça a été incroyable. Je peux indexer 1,5 million de documents en environ une minute sur mon MacBook, et même plus rapidement sur le serveur. J'utilise aussi Sphinx pour limiter les recherches aux endroits dans des latitudes et longitudes spécifiques, et c'est très rapide. En outre, comment les résultats sont classés est très modifiable. Facile à installer et à installer, si vous lisez un tutoriel ou deux. Presque 1,0 statut, mais leurs candidats à la sortie ont été solides.

2voto

Lucene / Solr semble être plus en vedette et avec de plus longues années dans les affaires et une communauté d'utilisateurs beaucoup plus forte. à mon humble avis si vous pouvez surmonter les problèmes d'installation initiale comme certains semblent avoir fait face (pas nous) alors je dirais que Lucene / Solr est votre meilleur pari.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X