Question

Je suis à la recherche d'une recherche en texte intégral serveur autonome avec les propriétés suivantes:

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

Les alternatives que j'ai trouvé qui ont ces propriétés sont:

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

Mes questions:

  • Comment se comparent-ils?
  • Ai-je oublié des solutions de rechange?
  • Je sais que chaque cas d'utilisation est différente, mais sont là certains cas où je serais certainement pas veulent utiliser un certain paquet?
Était-ce utile?

La solution

Je l'ai utilisé avec succès Solr depuis près de 2 ans maintenant, et ne l'ai jamais utilisé Sphinx, donc je suis évidemment biaisé. Cependant, je vais essayer de garder l'objectif en citant les documents ou d'autres personnes. Je vais aussi prendre des correctifs à ma réponse: -)

Similitudes:

  • Les deux Solr et Sphinx répondent à tous vos besoins. Ils sont rapides et conçus pour indexer et de rechercher de grandes étendues de données efficace.
  • Les deux ont une longue liste de sites à fort trafic en les utilisant ( Solr , Sphinx )
  • Les deux offrent un soutien commercial. ( Solr , Sphinx )
  • offrent deux liaisons API client pour plusieurs plates-formes / langues ( Sphinx , Solr )
  • Les deux peuvent être distribués pour augmenter la vitesse et de la capacité ( Sphinx , Solr )

Voici quelques différences:

Questions connexes:

Autres conseils

Sauf si vous avez besoin d'étendre la fonctionnalité de recherche de quelque façon exclusive, le Sphinx est votre meilleur pari.

Avantages Sphinx:

  1. Développement et la configuration est plus rapide
  2. Beaucoup mieux (et plus rapide) l'agrégation. Ce fut la caractéristique de tueur pour nous.
  3. Non XML. C'est ce que finalement exclu Solr pour nous. Nous avons dû revenir plutôt de grands résultats (penser à des centaines de résultats), puis de les regrouper nous-mêmes depuis l'agrégation Solr faisait défaut. La quantité de temps à serialize et de XML juste des performances tout à fait tué. Pour les petits ensembles de résultats cependant, il était parfaitement bien.
  4. meilleure documentation que je l'ai vu dans une application open source

avantages Solr:

  1. Peut être étendu.
  2. Peut-il frapper directement à partir d'une application Web, à savoir, vous pouvez avoir des recherches comme autocomplete a frappé le serveur Solr directement via AJAX.

Note: Il y a beaucoup d'utilisateurs avec la même question à l'esprit

.

Donc, pour répondre au point:

Qui et pourquoi?

  • Utilisez Solr si vous avez l'intention de l'utiliser dans votre web-app (Exemple de recherche par site moteur). Il va certainement se révéler grande, grâce à son API. Vous aurez certainement besoin de ce pouvoir pour une application web.

  • Utilisez Sphinx si vous voulez rechercher des tonnes de documents / fichiers réels rapides. Il indexe très vite aussi. Je recommande de ne pas l'utiliser dans une application qui implique JSON ou XML parsing pour obtenir les résultats de la recherche. Utilisez-le pour des recherches directes dB. Il fonctionne très bien sur MySQL.

Alternatives

Bien que ce sont les géants, il y a beaucoup plus. En outre, il y a ceux qui utilisent ces pour alimenter leurs cadres personnalisés. Donc, je dirais que vous avez vraiment rien manqué. Bien qu'il y ait un ElasticSearch qui a une bonne base d'utilisateurs.

J'utilise Sphinx depuis près d'un an, et il a été incroyable. Je peux l'indice de 1,5 millions de documents à environ une minute sur mon MacBook, et encore plus rapide sur le serveur. Je suis également en utilisant Sphinx pour limiter les recherches à des endroits dans les latitudes et longitudes spécifiques, et il est très rapide. En outre, comment les résultats sont classés est très tweakable. Facile à installer et la configuration, si vous lisez un tutoriel ou deux. Presque 1,0 état, mais leurs candidats de sortie ont été solide comme le roc.

Lucene / Solr semble être plus en vedette et avec plus d'années en affaires et une communauté d'utilisateurs beaucoup plus forte. IMHO si vous pouvez passer les problèmes de configuration initiale que certains semble avoir fait face (pas nous) alors je dirais que Lucene / Solr est votre meilleur pari.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top