Thinking Sphinx adalah perpustakaan untuk menghubungkan ActiveRecord ke alat pencarian teks lengkap Sphinx, dan terintegrasi erat dengan Rails (tetapi juga berfungsi dengan kerangka web Ruby lainnya). Rilis saat ini adalah v5.6.0.
Silakan merujuk ke log perubahan dan catatan rilis untuk mengetahui perubahan apa pun yang perlu Anda lakukan saat melakukan peningkatan. Catatan rilis khususnya cukup baik dalam mencakup perubahan-perubahan penting dan detail lebih lanjut untuk fitur-fitur baru.
Dokumentasi juga memiliki rincian lebih lanjut tentang apa saja yang diperlukan untuk meningkatkan dari v4 ke v5, v3 ke v4, dan v1/v2 ke v3.
Ini adalah permata, jadi pasanglah seperti yang Anda lakukan pada permata lainnya. Anda juga perlu menentukan permata mysql2 jika Anda menggunakan MRI , atau jdbc-mysql jika Anda menggunakan JRuby:
gem 'mysql2', '~> 0.4', :platform => :ruby
gem 'jdbc-mysql', '~> 5.1.35', :platform => :jruby
gem 'thinking-sphinx', '~> 5.5'
Permata MySQL yang disebutkan diperlukan untuk menghubungkan ke Sphinx, jadi harap sertakan bahkan ketika Anda menggunakan PostgreSQL untuk database Anda.
Anda juga harus menginstal Sphinx – ini tercakup dalam dokumentasi tambahan.
Mulailah dengan membaca panduan memulai cepat, dan lebih dari itu, dokumentasinya akan membantu Anda dengan cukup baik.
Rilis Thinking Sphinx saat ini berfungsi dengan versi dependensi berikut:
Perpustakaan | Minimum | Diuji Melawan |
---|---|---|
Rubi | v2.4 | v2.4, v2.5, v2.6, v2.7, v3.0, v3.1, v3.2 |
Sphinx | v2.2.11 | v2.2.11, v3.4.1 |
Manticore | v2.8 | v4.0, v6.0 |
Rekaman Aktif | v4.2 | v4.2..v7.0 |
Ini mungkin berfungsi dengan versi Ruby yang lebih lama, namun sangat disarankan untuk memperbarui ke rilis yang didukung.
Ini juga harus bekerja dengan JRuby, tetapi lingkungan pengujian untuk itu di CI tidak dapat diandalkan, oleh karena itu saat ini tidak diuji secara aktif.
Jika Anda menggunakan Sphinx, disarankan menggunakan v2.2.11 meskipun sudah cukup lama, karena berfungsi baik dengan database PostgreSQL (tetapi jika Anda menggunakan MySQL – atau indeks real-time – maka v3.3.1 juga bisa digunakan).
Jika Anda memilih Manticore, v2.8 atau yang lebih baru berfungsi, tetapi v4 atau yang lebih baru direkomendasikan karena itulah yang diuji secara aktif. Rilis v4.2 dan 5.0 memiliki bug dengan pencarian faset, tapi itu telah diperbaiki di Manticore v6.0.
Saat ini Thinking Sphinx dibuat untuk mendukung Rails/ActiveRecord 4.2 atau yang lebih baru. Jika Anda menggunakan Sinatra dan ActiveRecord alih-alih Rails, tidak apa-apa – pastikan Anda menambahkan opsi :require => 'thinking_sphinx/sinatra'
saat mencantumkan thinking-sphinx
di Gemfile Anda.
Jika Anda menginginkan dukungan ActiveRecord 3.2-4.1, lihat rilis 4.x dari Thinking Sphinx. Atau, untuk dukungan ActiveRecord 3.1, lihat rilis 3.0.x. Apa pun yang lebih tua dari itu, maka Anda terjebak dengan Thinking Sphinx v2.x (untuk Rails/ActiveRecord 3.0) atau v1.x (Rails 2.3). Harap diperhatikan bahwa versi lama ini tidak lagi didukung secara aktif.
Anda memerlukan Ruby standar (v2.4 atau lebih baru) atau JRuby (9.1 atau lebih baru).
MySQL 5.x dan Postgres 8.4 atau lebih baik didukung.
Harap dicatat bahwa proyek ini memiliki Kode Etik Kontributor. Dengan berpartisipasi dalam proyek ini, Anda setuju untuk mematuhi ketentuannya.
Untuk berkontribusi, clone repositori ini dan lihat baik-baik spesifikasinya – Anda akan melihat perbedaan antara tes penerimaan yang benar-benar menggunakan Sphinx dan melalui tumpukan penuh, dan tes unit (yang lainnya) yang menggunakan tes ganda liberal untuk memastikannya kami hanya menguji perilaku kelas yang dimaksud. Saya menemukan ini mengarah pada desain kode yang jauh lebih baik.
Semua pengembangan dilakukan di cabang develop
; harap mendasarkan permintaan penarikan apa pun dari cabang itu. Silakan tulis tes dan kemudian kode agar tes tersebut lulus, dan kirimkan melalui permintaan tarik.
Untuk menjalankan tes, Anda perlu membuat database bernama 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;
Anda kemudian dapat menjalankan pengujian unit dengan rake spec:unit
, pengujian penerimaan dengan rake spec:acceptance
, atau semua pengujian hanya dengan rake
. Untuk menjalankannya dengan PostgreSQL, Anda perlu mengatur variabel lingkungan DATABASE
sesuai:
DATABASE=postgresql rake
Hak Cipta © 2007-2024, Thinking Sphinx dikembangkan dan dikelola oleh Pat Allan, dan dirilis di bawah Lisensi MIT terbuka. Terima kasih banyak kepada semua yang telah menyumbangkan patch.