Ik gebruik Solr nu al bijna 2 jaar met succes en heb Sphinx nog nooit gebruikt, dus ik ben duidelijk bevooroordeeld. Ik zal echter proberen het objectief te houden door de documenten of andere mensen te citeren. Ik zal ook patches voor mijn antwoord nemen :-)
Overeenkomsten:
- Zowel Solr als Sphinx voldoen aan al uw eisen. Ze zijn snel en ontworpen om grote hoeveelheden gegevens efficiënt te indexeren en te doorzoeken.
- Beide hebben een lange lijst van sites met veel verkeer die ze gebruiken (Solr , Sphinx )
- Beide bieden commerciële ondersteuning. (Solr , Sphinx )
- Beide bieden client-API-bindingen voor verschillende platforms/talen (Sphinx , Solr )
- Beide kunnen worden gedistribueerd om de snelheid en capaciteit te verhogen (Sphinx , Solr )
Hier zijn enkele verschillen:
- Solr, dat een Apache-project is, heeft duidelijk een Apache2-licentie. Sphinx is GPLv2 . Dit betekent dat als u Sphinx ooit moet insluiten of uitbreiden (niet alleen "gebruiken") in een commerciële toepassing, u een commerciële licentie moet kopen (grondgedachte )
- Solr is gemakkelijk in te bedden in Java-toepassingen.
- Solr is gebouwd op Lucene, wat een bewezen technologie is boven 8 jaar oud met een enorm gebruikersbestand (dit is slechts een klein deel). Telkens wanneer Lucene een nieuwe functie of versnelling krijgt, krijgt Solr die ook. Veel van de ontwikkelaars die zich committeren aan Solr zijn ook Lucene committers.
- Sphinx integreert nauwer met RDBMS'en, vooral MySQL.
- Solr kan geïntegreerd worden met Hadoop om gedistribueerde applicaties te bouwen
- Solr kan geïntegreerd worden met Nutch om snel een volledig volwaardige webzoekmachine met crawler .
- Solr kan eigen formaten zoals Microsoft Word, PDF, enz. indexeren . Sphinx kan niet .
- Solr wordt standaard geleverd met een spell-checker .
- Solr wordt standaard geleverd met facetondersteuning . Facetten in Sphinx kost meer werk .
- Sphinx staat geen gedeeltelijke indexupdates toe voor veldgegevens .
- In Sphinx, moeten alle document-ID's een uniek niet-ondertekend geheel getal zijn dat niet nul is cijfers . Solr vereist niet eens een unieke sleutel voor veel bewerkingen , en unieke sleutels kunnen gehele getallen of tekenreeksen zijn.
- Solr ondersteunt instortende velden (momenteel alleen als extra patch) om te voorkomen dat vergelijkbare resultaten worden gedupliceerd. Sphinx lijkt dergelijke functies niet te bieden.
- Terwijl Sphinx is ontworpen om alleen document-ID's op te halen , in Solr kun je direct hele documenten krijgen met vrijwel alle soorten gegevens, waardoor het onafhankelijker wordt van elke externe gegevensopslag en het bespaart de extra heen- en terugreis.
- Solr, behalve bij gebruik ingesloten, wordt uitgevoerd in een Java-webcontainer
zoals Tomcat of Jetty, waarvoor extra specifieke configuratie en afstemming
nodig is (of je kunt de meegeleverde steiger
gebruiken en start het gewoon met
java -jar start.jar
). Sphinx heeft geen aanvullende configuratie.
Gerelateerde vragen:
- Full Text Searching with Rails
- Vergelijking van full-text zoekmachine - Lucene, Sphinx, Postgresql, MySQL?