Thinking Sphinx เป็นไลบรารีสำหรับเชื่อมต่อ ActiveRecord กับเครื่องมือค้นหาข้อความแบบเต็มของ Sphinx และรวมเข้ากับ Rails อย่างใกล้ชิด (แต่ยังทำงานร่วมกับเฟรมเวิร์กเว็บ Ruby อื่นๆ ได้ด้วย) รุ่นปัจจุบันคือ v5.6.0
โปรดดูบันทึกการเปลี่ยนแปลงและบันทึกประจำรุ่นสำหรับการเปลี่ยนแปลงใดๆ ที่คุณต้องทำเมื่ออัปเกรด บันทึกประจำรุ่นค่อนข้างดีในการครอบคลุมการเปลี่ยนแปลงที่สำคัญและรายละเอียดเพิ่มเติมสำหรับคุณสมบัติใหม่
เอกสารประกอบยังมีรายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่เกี่ยวข้องในการอัปเกรดจาก v4 เป็น v5, v3 เป็น v4 และ v1/v2 เป็น v3
มันเป็นอัญมณี ดังนั้นจงติดตั้งมันเหมือนกับที่คุณทำกับอัญมณีอื่นๆ คุณจะต้องระบุอัญมณี mysql2 หากคุณใช้ MRI หรือ jdbc-mysql หากคุณใช้ JRuby:
gem 'mysql2', '~> 0.4', :platform => :ruby
gem 'jdbc-mysql', '~> 5.1.35', :platform => :jruby
gem 'thinking-sphinx', '~> 5.5'
MySQL gems ที่กล่าวถึงนั้นจำเป็นสำหรับการเชื่อมต่อกับ Sphinx ดังนั้นโปรดรวมไว้แม้ว่าคุณจะใช้ PostgreSQL สำหรับฐานข้อมูลของคุณก็ตาม
คุณจะต้องติดตั้งสฟิงซ์ด้วย ซึ่งครอบคลุมอยู่ในเอกสารประกอบเพิ่มเติม
เริ่มต้นด้วยการอ่านคู่มือเริ่มต้นใช้งานฉบับย่อ และนอกเหนือจากนั้น เอกสารประกอบก็น่าจะให้บริการคุณได้เป็นอย่างดี
Thinking Sphinx รุ่นปัจจุบันใช้งานได้กับการอ้างอิงเวอร์ชันต่อไปนี้:
ห้องสมุด | ขั้นต่ำ | ทดสอบกับ |
---|---|---|
ทับทิม | เวอร์ชัน 2.4 | เวอร์ชัน 2.4, เวอร์ชัน 2.5, เวอร์ชัน 2.6, เวอร์ชัน 2.7, เวอร์ชัน 3.0, เวอร์ชัน 3.1, เวอร์ชัน 3.2 |
สฟิงซ์ | เวอร์ชัน 2.2.11 | เวอร์ชัน 2.2.11, เวอร์ชัน 3.4.1 |
มันติคอร์ | เวอร์ชัน 2.8 | เวอร์ชัน 4.0, เวอร์ชัน 6.0 |
ActiveRecord | เวอร์ชัน 4.2 | เวอร์ชัน 4.2..v7.0 |
อาจ ใช้งานได้กับ Ruby เวอร์ชันเก่า แต่ขอแนะนำอย่างยิ่งให้อัปเดตเป็นรุ่นที่รองรับ
มันควรจะใช้งานได้กับ JRuby ด้วย แต่สภาพแวดล้อมการทดสอบใน CI นั้นไม่น่าเชื่อถือ ดังนั้นจึงยังไม่มีการทดสอบอย่างจริงจังในขณะนี้
หากคุณใช้ Sphinx แนะนำให้ใช้เวอร์ชัน 2.2.11 แม้ว่าจะค่อนข้างเก่า เนื่องจากใช้งานได้ดีกับฐานข้อมูล PostgreSQL (แต่หากคุณใช้ MySQL หรือดัชนีแบบเรียลไทม์ เวอร์ชัน 3.3.1 ก็ควรจะใช้ได้เช่นกัน)
หากคุณเลือกใช้ Manticore แทน แนะนำให้ใช้เวอร์ชัน 2.8 หรือใหม่กว่า แต่แนะนำให้ใช้เวอร์ชัน 4 หรือใหม่กว่า เนื่องจากเป็นสิ่งที่ผ่านการทดสอบอย่างจริงจัง รุ่น v4.2 และ 5.0 มีข้อบกพร่องในการค้นหาแง่มุม แต่ได้รับการแก้ไขแล้วใน Manticore v6.0
ปัจจุบัน Thinking Sphinx ถูกสร้างขึ้นเพื่อรองรับ Rails/ActiveRecord 4.2 หรือใหม่กว่า หากคุณใช้ Sinatra และ ActiveRecord แทน Rails ก็ไม่เป็นไร เพียงตรวจสอบให้แน่ใจว่าคุณได้เพิ่มตัวเลือก :require => 'thinking_sphinx/sinatra'
เมื่อแสดงรายการ thinking-sphinx
ใน Gemfile ของคุณ
หากคุณต้องการการสนับสนุน ActiveRecord 3.2-4.1 โปรดดู Thinking Sphinx รุ่น 4.x หรือสำหรับการสนับสนุน ActiveRecord 3.1 โปรดดูที่รุ่น 3.0.x อะไรที่เก่ากว่านั้น คุณจะติดอยู่กับ Thinking Sphinx v2.x (สำหรับ Rails/ActiveRecord 3.0) หรือ v1.x (Rails 2.3) โปรดทราบว่าเวอร์ชันเก่าเหล่านี้ไม่ได้รับการสนับสนุนอีกต่อไป
คุณจะต้องใช้ Ruby มาตรฐาน (v2.4 หรือใหม่กว่า) หรือ JRuby (9.1 หรือใหม่กว่า)
รองรับ MySQL 5.x และ Postgres 8.4 หรือดีกว่า
โปรดทราบว่าโครงการนี้มีหลักปฏิบัติของผู้ร่วมให้ข้อมูล การเข้าร่วมในโครงการนี้แสดงว่าคุณตกลงที่จะปฏิบัติตามข้อกำหนด
หากต้องการมีส่วนร่วม ให้โคลนพื้นที่เก็บข้อมูลนี้และตรวจดูข้อกำหนดให้ดี คุณจะสังเกตเห็นความแตกต่างระหว่างการทดสอบการยอมรับที่ใช้สฟิงซ์จริงและผ่านสแต็กเต็ม และการทดสอบหน่วย (อย่างอื่นทั้งหมด) ที่ใช้การทดสอบเสรีนิยมจะเพิ่มเป็นสองเท่าเพื่อให้แน่ใจว่า เป็นเพียงการทดสอบพฤติกรรมของชั้นเรียนที่เป็นปัญหาเท่านั้น ฉันพบว่าสิ่งนี้นำไปสู่การออกแบบโค้ดที่ดีขึ้นมาก
การพัฒนาทั้งหมดเสร็จสิ้นในสาขา develop
โปรดส่งคำขอดึงออกจากสาขานั้น โปรดเขียนการทดสอบแล้วตามด้วยโค้ดเพื่อให้ผ่านการทดสอบ และส่งผ่านการขอดึง
ในการรันการทดสอบ คุณจะต้องสร้างฐานข้อมูลชื่อ thinking_sphinx
:
# Either fire up a MySQL console:
mysql -u root
# OR a PostgreSQL console:
psql
# In that console, create the database:
CREATE DATABASE thinking_sphinx;
จากนั้น คุณสามารถรันการทดสอบหน่วยด้วย rake spec:unit
การทดสอบการยอมรับด้วย rake spec:acceptance
หรือการทดสอบทั้งหมดโดยใช้เพียง rake
หากต้องการรันสิ่งเหล่านี้ด้วย PostgreSQL คุณจะต้องตั้งค่าตัวแปรสภาพแวดล้อม DATABASE
ให้สอดคล้อง:
DATABASE=postgresql rake
ลิขสิทธิ์© 2007-2024 Thinking Sphinx ได้รับการพัฒนาและดูแลโดย Pat Allan และเผยแพร่ภายใต้ใบอนุญาต MIT แบบเปิด ขอบคุณมากสำหรับทุกคนที่มีส่วนสนับสนุนแพทช์