Saya mencari server pencarian teks lengkap yang berdiri sendiri dengan properti berikut:
- Harus beroperasi sebagai server yang berdiri sendiri yang dapat melayani permintaan pencarian dari banyak klien
- Harus dapat melakukan "pengindeksan massal" dengan mengindeks hasil dari permintaan SQL: ucapkan "SELECT id, text_to_index FROM dokumen;"
- Harus perangkat lunak gratis dan harus dijalankan di Linux dengan MySQL sebagai databasenya
- Harus cepat (mengesampingkan pencarian teks lengkap internal MySQL)
Alternatif yang saya temukan yang memiliki properti ini adalah:
- Solr (berdasarkan Lucene)
- ElasticSearch (juga berdasarkan pada Lucene)
- Sphinx
Pertanyaan saya:
- Bagaimana mereka membandingkan?
- Apakah saya melewatkan alternatif lain?
- Saya tahu bahwa setiap kasus penggunaan berbeda, tetapi apakah ada kasus tertentu di mana saya pasti tidak ingin menggunakan paket tertentu?
Jawaban:
Saya telah menggunakan Solr dengan sukses 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 menerima tambalan untuk jawaban saya :-)
Kesamaan:
Berikut ini beberapa perbedaan:
java -jar start.jar
). Sphinx tidak memiliki konfigurasi tambahan.Pertanyaan-pertanyaan Terkait:
sumber
Kecuali Anda perlu memperluas fungsionalitas pencarian dengan cara apa pun yang berpemilik, Sphinx adalah taruhan terbaik Anda.
Keuntungan Sphinx:
Keuntungan solr:
sumber
Catatan: Ada banyak pengguna dengan pertanyaan yang sama.
Jadi, untuk menjawab intinya:
Yang mana dan mengapa?
Gunakan Solr jika Anda bermaksud menggunakannya di aplikasi web Anda (mesin pencari situs contoh). Ini pasti akan menjadi hebat, berkat API-nya. Anda pasti akan membutuhkan kekuatan itu untuk aplikasi web.
Gunakan Sphinx jika Anda ingin mencari melalui banyak dokumen / file dengan sangat cepat. Itu indeks sangat cepat juga. Saya akan merekomendasikan untuk tidak menggunakannya dalam aplikasi yang melibatkan JSON atau parsing XML untuk mendapatkan hasil pencarian. Gunakan untuk pencarian dB langsung. Ini berfungsi dengan baik di MySQL.
Alternatif
Meskipun ini adalah raksasa, ada banyak lagi. Juga, ada yang menggunakan ini untuk memperkuat kerangka kerja kustom mereka. Jadi, saya akan mengatakan bahwa Anda benar-benar tidak ketinggalan. Meskipun ada satu elasticsearch yang memiliki basis pengguna yang baik.
sumber
Saya telah menggunakan Sphinx selama hampir satu tahun sekarang, dan itu luar biasa. Saya dapat mengindeks 1,5 juta dokumen dalam waktu sekitar satu menit di MacBook saya, dan bahkan lebih cepat di server. Saya juga menggunakan Sphinx untuk membatasi pencarian ke tempat-tempat dalam garis lintang & bujur tertentu, dan ini sangat cepat. Juga, bagaimana peringkat hasil sangat tweaker. Mudah dipasang & disetel, jika Anda membaca satu atau dua tutorial. Hampir berstatus 1.0, tetapi Kandidat Rilis mereka telah solid.
sumber
Lucene / Solr tampaknya lebih menonjol dan dengan tahun-tahun yang lebih panjang dalam bisnis dan komunitas pengguna yang jauh lebih kuat. imho jika Anda dapat melewati masalah pengaturan awal karena beberapa tampaknya telah menghadapi (bukan kita) maka saya akan mengatakan Lucene / Solr adalah taruhan terbaik Anda.
sumber