ความแตกต่างระหว่าง solr และ lucene


163

ฉันรู้ว่า Lucene และ Solr เป็น 2 โครงการ Apache ที่แตกต่างกันซึ่งทำงานร่วมกัน แต่ฉันไม่เข้าใจว่าเป้าหมายของแต่ละโครงการคืออะไร

สำหรับสิ่งที่ฉันเข้าใจจนถึงตอนนี้คือ Lucene ใช้เพื่อสร้างดัชนีการค้นหาและ Solr ใช้ดัชนีนี้เพื่อทำการค้นหา ฉันถูกหรือว่าเป็นแนวทางที่แตกต่างอย่างสิ้นเชิง?


5
ไม่lucene.apache.org/solr (และหน้าเทียบเท่าสำหรับ Lucene) ตอบว่าใช่หรือไม่
NPE

ใช่คุณพูดถูกหน้าคุณสมบัติของโซล่าร์จะอธิบายความแตกต่าง ศรีถ้าฉันเข้าใจว่าฉันสามารถใช้ Lucene เพียงอย่างเดียว แต่ Solr ต้องการให้ Lucene ทำงาน
darkheir

2
ซึ่งแตกต่างจาก Lucene, Solr เป็นเว็บแอปพลิเคชั่น (WAR) ซึ่งสามารถนำไปใช้ในคอนเทนเนอร์ servlet ใด ๆ เช่น Jetty, Tomcat, Resin, ฯลฯ Solr สามารถติดตั้งและใช้งานโดยผู้ที่ไม่ใช่โปรแกรมเมอร์ Lucene ไม่สามารถ เพิ่มเติมเกี่ยวกับlucenetutorial.com/lucene-vs-solr.html
Lucky

คำตอบ:


229

@darkheir: Lucene และ Solr เป็น 2 โครงการ Apache ที่สร้างขึ้นเพื่อทำงานร่วมกันฉันไม่เข้าใจว่าเป้าหมายของแต่ละโครงการคืออะไร

1) Solr ใช้ Lucene ใต้ฝากระโปรง Lucene ไม่มีเงื่อนงำเกี่ยวกับ Solr API

2) Lucene เป็นกรอบเครื่องมือค้นหาที่ทรงพลังซึ่งช่วยให้เราเพิ่มความสามารถในการค้นหาให้กับแอปพลิเคชันของเรา มันเปิดเผย API ที่ใช้งานง่ายในขณะที่ซ่อนการดำเนินการที่ซับซ้อนที่เกี่ยวข้องกับการค้นหาทั้งหมด แอปพลิเคชันใด ๆ สามารถใช้ไลบรารีนี้ไม่ใช่แค่ Solr

3) Solr สร้างขึ้นรอบ ๆ Lucene มันไม่ได้เป็นเพียง http-wrapper รอบ ๆ Lucene แต่เป็นที่ทราบกันดีว่ามีการเพิ่มคลังแสงให้กับ Luceneมากขึ้น Solr พร้อมใช้งานทันที มันเป็นเว็บแอปพลิเคชั่นที่นำเสนอโครงสร้างพื้นฐานที่เกี่ยวข้องและคุณสมบัติอื่น ๆ อีกมากมายนอกเหนือจากสิ่งที่ Lucene นำเสนอ

@darkheir: Lucene ใช้เพื่อสร้างดัชนีการค้นหาและ Solr ใช้ดัชนีนี้เพื่อทำการค้นหา ฉันถูกหรือว่าเป็นแนวทางที่แตกต่างอย่างสิ้นเชิง?

4) Lucene ไม่เพียงแค่สร้างดัชนีเพื่อการบริโภคโดย Solr Lucene จัดการการดำเนินการที่เกี่ยวข้องกับการค้นหาทั้งหมด แอปพลิเคชันใด ๆ สามารถใช้เฟรมเวิร์ก Lucene

ตัวอย่างเช่น Solr, Elastic Search, LinkedIn (ใช่ภายใต้ประทุน) ฯลฯ

ตรวจสอบบทความนี้: Lucene vs Solr

อัปเดต (6/18/14)

เมื่อใดที่ใช้ Lucene

  • คุณเป็นวิศวกรการค้นหาและ
  • คุณเป็นโปรแกรมเมอร์และ
  • คุณต้องการควบคุมทั้งหมดภายในของ Lucene AND เกือบทั้งหมด
  • ความต้องการของคุณต้องการให้คุณปรับแต่ง geeky ให้ Lucene AND ทุกประเภท
  • คุณยินดีที่จะดูแลองค์ประกอบโครงสร้างพื้นฐานของการค้นหาของคุณเช่นการปรับการกระจาย ฯลฯ

ควรใช้ Solr เมื่อใด?

  • อย่างน้อยหนึ่งในข้างต้นไม่สมเหตุสมผล หรือ
  • คุณต้องการบางสิ่งที่พร้อมใช้งานทันที (แม้ไม่มีความรู้เกี่ยวกับ Java) หรือ
  • ข้อกำหนดโครงสร้างพื้นฐานของคุณมีมากกว่าข้อกำหนดการปรับแต่งการค้นหา

หมายเหตุ : ฉันไม่ได้หมายความว่า Solr ยากที่จะปรับแต่ง Solr มีความยืดหยุ่นสูงและให้คะแนน API แบบถอดได้จำนวนมากช่วยให้คุณสามารถโยนรหัสของคุณได้

มีผู้คนที่อยู่ภายใต้ ' ต้องใช้ Lucene ' แต่ก็ยังชอบ Solr มากกว่า Lucene เพราะมันใช้งานง่าย อย่างไรก็ตามพวกเขาไม่เคยยับยั้งตัวเองจากการปรับแต่ง Solr ในระดับสูงสุด

BTW ฉันเห็นว่ามีทรัพยากรใน Solr (4.x) มากกว่า Lucene (4.x)


31

Lucene เป็นไลบรารี Java ระดับต่ำ (พร้อมพอร์ตถึง. NET ฯลฯ ) ซึ่งใช้จัดทำดัชนีวิเคราะห์ค้นหาและอื่น ๆ

Solr เป็นผลิตภัณฑ์ / เว็บแอพที่กำหนดค่าไว้ล่วงหน้าแบบสแตนด์อโลนซึ่งใช้ Lucene หากคุณต้องการจัดการกับ HTTP API แทน Java API Solr เหมาะสำหรับคุณ Solr ยังมีคุณสมบัติพิเศษบางอย่างอยู่ด้านบน (เช่นการจัดกลุ่ม )


21

วิธีง่ายๆในการกำหนดความสัมพันธ์ระหว่าง Solr และ Lucene คือรถยนต์และเครื่องยนต์ คุณขับเครื่องยนต์ไม่ได้ แต่คุณขับรถได้ ในทำนองเดียวกัน Lucene เป็นไลบรารี่แบบโปรแกรมซึ่งคุณไม่สามารถใช้เหมือนเดิมได้ในขณะที่ Solr เป็นแอปพลิเคชั่นที่สมบูรณ์ซึ่งคุณสามารถใช้นอกกรอบได้

ที่มา: Lucene-vs-solr - การสอน Lucene


5
ซึ่งคัดลอกวางจากlucenetutorial.com/lucene-vs-solr.htmlโปรดพูดถึงแหล่งที่มาเมื่อใดก็ตามที่คุณคัดลอกคำตอบวางวาง quoting แหล่งที่มา ;)
โชคดี

1
หน้านี้ดูเหมือนจะออฟไลน์แล้ว
dev_feed

15

Solr ถูกสร้างขึ้นบน lucene เพื่อจัดหาแพลตฟอร์มการค้นหา

ค้นหาแพลตฟอร์มในเลเยอร์ต่อไปนี้จากล่างขึ้นบน:

  • ข้อมูล
    • วัตถุประสงค์: แสดงชนิดข้อมูลและแหล่งที่มาต่างๆ
  • สร้างเอกสาร
    • วัตถุประสงค์: สร้างข้อมูลเอกสารสำหรับการจัดทำดัชนี
  • การจัดทำดัชนีและการค้นหา
    • วัตถุประสงค์: สร้างและสืบค้นดัชนีเอกสาร
  • การเพิ่มประสิทธิภาพของลอจิก
    • วัตถุประสงค์: ตรรกะเพิ่มเติมสำหรับการประมวลผลคำค้นหาและผลลัพธ์
  • บริการแพลตฟอร์มการค้นหา
    • วัตถุประสงค์: เพิ่มฟังก์ชันการทำงานเพิ่มเติมของแกนเครื่องมือค้นหาเพื่อให้บริการแพลตฟอร์ม
  • แอปพลิเคชัน UI
    • วัตถุประสงค์: ส่วนติดต่อผู้ใช้หรือแอปพลิเคชันการค้นหาปลายทาง

solr stack

บทความอ้างอิง: การค้นหาระดับองค์กร


12

SOLR เป็นเสื้อคลุมเหนือดัชนี Lucene

มันเป็นเรื่องง่ายที่จะเข้าใจ: SOLR เป็นรถและ Lucene เป็นของเครื่องยนต์ คุณเพียงแค่ต้องรู้วิธีการขับรถยนต์ (SOLR) และต้องรู้เรื่องของเครื่องยนต์ (Lucene) ในกรณีที่เกิดปัญหากับเครื่องยนต์ในรถยนต์ของคุณ

มีไดรฟ์ที่ปลอดภัย :)


3
ไม่ต้องพูดถึงว่าถ้าคุณมีความโน้มเอียงมากคุณสามารถสร้างรถของคุณเองโดยใช้เครื่องยนต์ Lucene
hintss

1

คุณสามารถจินตนาการได้ด้วยวิธีต่อไปนี้ - Apache Lucene เป็นห้องสมุดที่ Apache Solr ใช้ภายใน มันเขียนใน Java และให้ความสามารถในการค้นหาข้อความและการจัดทำดัชนีที่น่าทึ่ง สามารถวิเคราะห์ภาษาจำนวนมากจากทั่วทุกมุมโลกและจัดเตรียมข้อความในภาษาดังกล่าวเพื่อการค้นหาและวิเคราะห์ที่มีประสิทธิภาพและรวดเร็ว Lucene เป็นห้องสมุด - คุณสามารถใช้มันโดยตรงในแอปพลิเคชันของคุณและนำทุกอย่างไปใช้ด้วยตัวคุณเอง แต่ Apache Solr ให้ประโยชน์มากมายกับคุณ

เครื่องมือค้นหา Apache Solr นำเสนอสิ่งต่างๆเช่น HTTP API ที่คุณสามารถใช้เพื่อส่งข้อมูลไปยังพวกเขาและค้นหาข้อมูลนั้นในภายหลัง คุณสามารถควบคุมเครื่องมือค้นหาโดยใช้ API สร้างสภาพแวดล้อมแบบกระจายและแจกจ่ายข้อมูลโดยอัตโนมัติผ่านหลายโหนดและอีกมากมาย


0

คุณสามารถค้นหาการเปรียบเทียบที่ดีเกี่ยวกับวัตถุประสงค์ของความสว่างและพลังงานแสงอาทิตย์ได้ที่นี่:

http://www.lucenetutorial.com/lucene-vs-solr.html

TLDR: Lucence เป็นเพียงแค่เครื่องยนต์ Solar เป็นรถที่คุณสามารถขับได้ (พร้อมกับส่วนที่เหลือ ฯลฯ )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.