Jeg har brugt Solr med succes i næsten 2 år nu, og har aldrig brugt Sphinx, så jeg er naturligvis forudindtaget. Jeg vil dog forsøge at holde det objektivt ved at citere dokumenterne eller andre personer. Jeg vil også tage patches til mit svar :-)
Ligheder:
- Både Solr og Sphinx opfylder alle dine krav. De er hurtige og designet til at indeksere og søge i store mængder data effektivt.
- Begge har en lang liste af websteder med stor trafik, der bruger dem (Solr , Sphinx )
- Begge tilbyder kommerciel support. (Solr , Sphinx )
- Begge tilbyder klient-API-bindinger til flere platforme/sprog (Sphinx , Solr )
- Begge kan distribueres for at øge hastigheden og kapaciteten (Sphinx , Solr )
Her er nogle forskelle:
- Solr, som er et Apache-projekt, er åbenbart Apache2-licenseret. Sphinx er GPLv2 . Dette betyder, at hvis du nogensinde har brug for at indlejre eller udvide (ikke bare "bruge") Sphinx i en kommerciel applikation, skal du købe en kommerciel licens (rationale )
- Solr er let at integrere i Java-applikationer.
- Solr er bygget oven på Lucene, som er en gennemprøvet teknologi over 8 år gammel med en enorm brugerbase (dette er kun en lille del). Når Lucene får en ny funktion eller speedup, får Solr det også. Mange af de udviklere, der forpligter sig til Solr, er også Lucene-committere.
- Sphinx integrerer tættere med RDBMS'er, især MySQL.
- Solr kan integreres med Hadoop at bygge distribuerede applikationer
- Solr kan integreres med Nutch for hurtigt at bygge en fuldt- udvidet websøgemaskine med crawler .
- Solr kan indeksere proprietære formater som Microsoft Word, PDF osv. . Sphinx kan ikke .
- Solr leveres med en stavekontrol ud af æsken .
- Solr leveres med facetunderstøttelse ud af æsken . Facetering i Sphinx kræver mere arbejde .
- Sphinx tillader ikke delvise indeksopdateringer for feltdata .
- I Sphinx skal alle dokument-id'er være unikke usignerede ikke-nul heltal tal . Solr kræver ikke engang en unik nøgle til mange operationer , og unikke nøgler kan enten være heltal eller strenge.
- Solr understøtter feltsammenbrud (i øjeblikket kun som et ekstra plaster) for at undgå duplikering af lignende resultater. Sphinx ser ikke ud til at give nogen funktion som denne.
- Mens Sphinx er designet til kun at hente dokument-id'er , i Solr kan du direkte få hele dokumenter med stort set enhver form for data, hvilket gør det mere uafhængigt af et eksternt datalager, og det sparer den ekstra rundtur.
- Solr, undtagen når det bruges indlejret, kører i en Java-webcontainer
såsom Tomcat eller Jetty, som kræver yderligere specifik konfiguration og tuning
(eller du kan bruge den medfølgende anløbsbro
og bare start den med
java -jar start.jar
). Sphinx har ingen yderligere konfiguration.
Relaterede spørgsmål:
- Fuld tekstsøgning med skinner
- Sammenligning af fuldtekstsøgemaskine - Lucene, Sphinx, Postgresql, MySQL?