Perbedaan antara sol dan lucene

163

Saya tahu bahwa Lucene dan Solr adalah 2 proyek Apache yang berbeda yang dibuat untuk bekerja bersama, tetapi saya tidak mengerti apa tujuan dari setiap proyek.

Yang saya mengerti sampai sekarang adalah bahwa Lucene digunakan untuk membuat indeks pencarian dan Solr menggunakan indeks ini untuk melakukan pencarian. Apakah saya benar atau ini pendekatan yang sama sekali berbeda?

darkheir
sumber
5
Bukankah lucene.apache.org/solr (dan halaman yang setara untuk Lucene) menjawab itu?
NPE
Ya Anda benar, halaman fitur utama menjelaskan perbedaannya. Jika saya mengerti saya bisa menggunakan Lucene sendirian, tetapi Solr membutuhkan Lucene untuk bekerja.
darkheir
2
Tidak seperti Lucene, Solr adalah aplikasi web (PERANG) yang dapat digunakan dalam wadah servlet, misalnya Jetty, Tomcat, Resin, dll. Solr dapat diinstal dan digunakan oleh non-programmer. Lucene tidak bisa. Lebih lanjut tentang lucenetutorial.com/lucene-vs-solr.html
Lucky

Jawaban:

229

@darkheir: Lucene dan Solr adalah 2 perbedaan proyek Apache yang dibuat untuk bekerja bersama, saya tidak mengerti apa tujuan dari setiap proyek.

1) Solr menggunakan Lucene di bawah tenda. Lucene tidak tahu tentang Solr API.

2) Lucene adalah kerangka kerja mesin pencari yang kuat yang memungkinkan kita menambahkan kemampuan pencarian ke aplikasi kita. Itu memperlihatkan API yang mudah digunakan sambil menyembunyikan semua operasi kompleks terkait pencarian. Aplikasi apa pun dapat menggunakan pustaka ini, bukan hanya Solr.

3) Solr dibangun di sekitar Lucene. Ini bukan hanya http-wrapper di sekitar Lucene tetapi telah dikenal untuk menambahkan lebih banyak arsenal ke Lucene . Solr siap digunakan di luar kotak. Ini adalah aplikasi web yang menawarkan infrastruktur terkait dan lebih banyak fitur selain yang ditawarkan Lucene.

@darkheir: Lucene digunakan untuk membuat indeks pencarian dan Solr menggunakan indeks ini untuk melakukan pencarian. Apakah saya benar atau ini pendekatan yang sama sekali berbeda?

4) Lucene tidak hanya membuat Indeks untuk konsumsi oleh Solr . Lucene menangani semua operasi terkait pencarian. Aplikasi apa pun dapat menggunakan kerangka kerja Lucene.

Contohnya adalah Solr, Pencarian Elastis, LinkedIn (ya, di bawah tenda), dll.

Lihat artikel ini: Lucene vs Solr

UPDATE (6/18/14)

Kapan harus menggunakan Lucene?

  • Anda adalah seorang insinyur pencarian DAN
  • Anda adalah seorang programmer DAN
  • Anda ingin kontrol penuh atas hampir semua bagian dalam Lucene AND
  • Persyaratan Anda menuntut Anda untuk melakukan segala macam penyesuaian khusus untuk Lucene AND
  • Anda bersedia untuk mengurus elemen infrastruktur pencarian Anda seperti penskalaan, distribusi, dll.

Kapan menggunakan Solr?

  • Setidaknya salah satu di atas tidak masuk akal. ATAU
  • Anda menginginkan sesuatu yang siap digunakan di luar kotak (bahkan tanpa sepengetahuan Jawa) ATAU
  • Persyaratan infrastruktur Anda lebih besar daripada persyaratan penyesuaian pencarian.

CATATAN : Saya tidak bermaksud bahwa Solr sulit untuk disesuaikan. Solr sangat fleksibel dan menyediakan banyak poin API pluggable, memungkinkan Anda untuk memasukkan kode Anda.

Ada orang yang jatuh di bawah kamp ' harus menggunakan Lucene ', tetapi masih lebih suka Solr daripada Lucene karena mudah digunakan. Namun, mereka tidak pernah menahan diri dari menyesuaikan Solr sampai batas maksimum.

BTW, saya melihat bahwa ada lebih banyak sumber daya pada Solr (4.x) daripada Lucene (4.x).

phanin
sumber
31

Lucene adalah pustaka Java tingkat rendah (dengan port ke .NET, dll.) Yang mengimplementasikan pengindeksan, analisis, pencarian, dll.

Solr adalah produk / aplikasi web mandiri yang dikonfigurasi yang menggunakan Lucene. Jika Anda lebih suka berurusan dengan API HTTP daripada Java API, Solr adalah untuk Anda. Solr juga punya beberapa fitur tambahan di atas (mis. Pengelompokan ).

mindas
sumber
21

Cara sederhana untuk membuat konsep hubungan antara Solr dan Lucene adalah dari mobil dan mesinnya. Anda tidak bisa mengendarai mesin, tetapi Anda bisa mengendarai mobil. Demikian pula, Lucene adalah perpustakaan terprogram yang tidak dapat Anda gunakan apa adanya, sedangkan Solr adalah aplikasi lengkap yang dapat Anda gunakan di luar kotak.

Sumber: Lucene-vs-solr - Lucene Tutorial

Vikas Kumar
sumber
5
Yang disalin dari dari lucenetutorial.com/lucene-vs-solr.html Harap sebutkan sumbernya setiap kali Anda menyalin jawaban tempel mengutip sumber. ;)
Lucky
1
Halaman sepertinya sedang offline sekarang.
dev_feed
15

Solr dibangun di atas lucene untuk menyediakan platform pencarian.

Cari platform di lapisan berikut dari bawah ke atas:

  • Data
    • Tujuan: Menampilkan berbagai tipe dan sumber data
  • Bangunan dokumen
    • Tujuan: Membangun informasi dokumen untuk pengindeksan
  • Pengindeksan dan pencarian
    • Tujuan: Membuat dan meminta indeks dokumen
  • Peningkatan logika
    • Tujuan: Logika tambahan untuk memproses kueri dan hasil pencarian
  • Layanan platform pencarian
    • Tujuan: Tambahkan fungsi tambahan inti mesin pencari untuk menyediakan platform layanan.
  • Aplikasi UI
    • Tujuan: Antarmuka pencarian pengguna akhir atau aplikasi

tumpukan solr

Artikel referensi: Pencarian perusahaan

mingxue
sumber
12

SOLR adalah pembungkus indeks Lucene.

Mudah dimengerti: SOLR adalah mobil dan Lucene adalah mesinnya . Anda hanya perlu tahu cara mengemudi mobil (SOLR) dan juga perlu tahu beberapa hal tentang mesin (Lucene) untuk berjaga-jaga jika akan ada masalah dalam mesin mobil Anda.

Selamat berkendara :)

Behzad Qureshi
sumber
3
Belum lagi jika Anda sangat ingin, Anda bisa membangun mobil sendiri menggunakan mesin Lucene.
hintss
1

Anda dapat membayangkannya dengan cara berikut - Apache Lucene adalah perpustakaan yang digunakan secara internal oleh Apache Solr. Ini ditulis dalam Java dan menyediakan pencarian teks lengkap dan kemampuan mengindeks. Ini dapat menganalisis sejumlah besar bahasa dari seluruh dunia dan menyiapkan teks dalam bahasa tersebut untuk pencarian dan analisis yang efisien dan cepat. Lucene adalah perpustakaan - Anda bisa menggunakannya secara langsung di aplikasi Anda dan mengimplementasikan semuanya sendiri, tetapi Apache Solr menyediakan banyak hal.

Mesin pencari Apache Solr menyediakan hal-hal seperti API HTTP yang dapat Anda gunakan untuk mengirim data kepada mereka dan kemudian mencari data itu. Anda dapat mengontrol mesin pencari menggunakan API, membuat lingkungan terdistribusi dan secara otomatis mendistribusikan data di beberapa node dan banyak lagi.

Rafal
sumber