Saya telah berhasil menggunakan Solr selama hampir 2 tahun sekarang, dan belum pernah menggunakan Sphinx, jadi saya jelas bias. Namun, saya akan mencoba untuk tetap objektif dengan mengutip dokumen atau orang lain. Saya juga akan mengambil tambalan untuk jawaban saya :-)
Kesamaan:
- Baik Solr maupun Sphinx memenuhi semua kebutuhan Anda. Mereka cepat dan dirancang untuk mengindeks dan menelusuri sejumlah besar data secara efisien.
- Keduanya memiliki daftar panjang situs dengan lalu lintas tinggi yang menggunakannya (Solr , Sphinx )
- Keduanya menawarkan dukungan komersial. (Solr , Sphinx )
- Keduanya menawarkan pengikatan API klien untuk beberapa platform/bahasa (Sphinx , Solr )
- Keduanya dapat didistribusikan untuk meningkatkan kecepatan dan kapasitas (Sphinx , Solr )
Berikut beberapa perbedaannya:
- Solr, sebagai proyek Apache, jelas memiliki lisensi Apache2. Sphinx adalah GPLv2 . Ini berarti bahwa jika Anda perlu menyematkan atau memperluas (bukan hanya "menggunakan") Sphinx dalam aplikasi komersial, Anda harus membeli lisensi komersial (alasan )
- Solr adalah dapat disematkan dengan mudah dalam aplikasi Java.
- Solr dibangun di atas Lucene, yang merupakan teknologi yang telah terbukti di atas 8 tahun dengan besar basis pengguna (ini hanya sebagian kecil). Setiap kali Lucene mendapatkan fitur atau percepatan baru, Solr juga mendapatkannya. Banyak pengembang yang berkomitmen pada Solr juga merupakan pembuat Lucene.
- Sphinx terintegrasi lebih erat dengan RDBMS, terutama MySQL.
- Solr dapat terintegrasi dengan Hadoop untuk membangun aplikasi terdistribusi
- Solr dapat terintegrasi dengan Nutch untuk dengan cepat membangun sepenuhnya- mesin telusur web lengkap dengan perayap .
- Solr dapat mengindeks format kepemilikan seperti Microsoft Word, PDF, dll . Sphinx tidak bisa .
- Solr hadir dengan pemeriksa ejaan di luar kotak .
- Solr hadir dengan dukungan segi di luar kotak . Faceting di Sphinx membutuhkan lebih banyak pekerjaan .
- Sphinx tidak mengizinkan pembaruan indeks parsial untuk data lapangan .
- Di Sphinx, semua id dokumen harus berupa bilangan bulat bukan nol unik yang tidak ditandatangani angka . Solr bahkan tidak memerlukan kunci unik untuk banyak operasi , dan kunci unik dapat berupa bilangan bulat atau string.
- Solr mendukung penciutan bidang (saat ini hanya sebagai tambalan tambahan) untuk menghindari duplikasi hasil yang serupa. Sphinx sepertinya tidak menyediakan fitur seperti ini.
- Sementara Sphinx dirancang hanya untuk mengambil id dokumen , di Solr Anda bisa langsung mendapatkan seluruh dokumen dengan hampir semua jenis data, membuatnya lebih independen dari penyimpanan data eksternal dan menghemat perjalanan pulang pergi ekstra.
- Solr, kecuali jika digunakan tersemat, berjalan di wadah web Java
seperti Tomcat atau Jetty, yang memerlukan konfigurasi dan penyetelan khusus tambahan
(atau Anda dapat menggunakan Jetty yang disertakan
dan luncurkan saja dengan
java -jar start.jar
). Sphinx tidak memiliki konfigurasi tambahan.
Pertanyaan terkait:
- Penelusuran Teks Lengkap dengan Rails
- Perbandingan mesin pencari teks lengkap - Lucene, Sphinx, Postgresql, MySQL?