Jika Anda menemukan plugin ini berguna, silakan pertimbangkan sumbangan untuk menunjukkan dukungan Anda!
www.paypal.com/cgi-bin/webscr?cmd=_send-money
Alamat PayPal: [email protected]
Plugin ini memungkinkan pencarian fullText yang berkualitas boolean ditambahkan ke aplikasi Rails apa pun tanpa dependensi dan pengaturan minimal.
permata 'acts_as_indexed'
Jalankan bundle install . Selesai.
./script/plugin instal git: //github.com/dougal/acts_as_indexed.git
Jika Anda tidak menginstal git, tetapi masih menginginkan plugin, Anda dapat mengunduh plugin dari halaman GitHub (github.com/dougal/acts_as_indexed) dan buka paket ke direktori vendor/plugins aplikasi Rails Anda.
Saat meningkatkan ke versi baru ACTS_AS_INDEXED, disarankan Anda menghapus direktori indeks dan membiarkannya dibangun kembali.
Tambahkan acts_as_indexed ke bagian atas model apa pun yang ingin Anda indeks, bersama dengan daftar bidang yang ingin diindeks.
Posting Kelas <Activerecord :: Base acts_as_indexed: fields => [: title ,: body] ... akhir
Bidang tidak terbatas pada bidang model, tetapi dapat menjadi metode instance dari model saat ini.
Pengguna kelas <Activerecord :: Base
acts_as_indexed: fields => [: alamat ,: fullname]
def fullname
self.firstname + '' + self.lastname
akhir
...
akhirSalah satu opsi konfigurasi di bagian konfigurasi lebih lanjut dapat ditambahkan untuk panggilan metode ACTS_AS_INDEXED. Ini akan mengganti segala default atau konfigurasi global.
Anda dapat menentukan proc yang perlu dievaluasi ke true sebelum item diindeks. Ini berguna jika Anda hanya ingin item dengan keadaan tertentu untuk dimasukkan. Proc dilewatkan sebagai instance objek saat ini sehingga Anda dapat menguji terhadapnya.
Misalnya, jika Anda memiliki kolom yang terlihat yang salah jika posting disembunyikan, atau benar jika terlihat, Anda dapat memfilter indeks dengan melakukan:
Posting Kelas <Activerecord :: Base
acts_as_indexed: fields => [: title ,: body] ,: if => proc.new {| Post | Post.Visible? }
...
akhir Untuk mencari dengan kecocokan paling relevan yang muncul lebih dulu, hubungi metode find_with_index pada model Anda, meneruskan kueri sebagai argumen pertama. Parameter ids_only opsional, ketika diatur ke true, hanya akan mengembalikan ID dari catatan yang cocok.
# Mengembalikan array objek pos yang dipesan berdasarkan relevansi. my_search_results = post . find_with_index ( 'kueri pencarian saya' ) # Lulus salah satu ActiveSecord Temukan opsi untuk pencarian. my_search_results = post . find_with_index ( 'kueri pencarian saya' , { : limit => 10 }) # kembalikan 10 kecocokan pertama. # Mengembalikan array ID yang dipesan berdasarkan relevansi. my_search_results = post . find_with_index ( 'kueri pencarian saya' , {}, { : ids_only => true }) # => [12,19,33 ...
Jika relevansi hasilnya tidak penting, hubungi with_query bernama ruang lingkup pada model Anda, meneruskan kueri sebagai argumen.
# Mengembalikan array objek pos. my_search_results = post . with_Query ( 'kueri pencarian saya' ) # Rantai dengan sejumlah metode ActiveRecord dan named_scopes. my_search_results = post . publik with_Query ( 'kueri pencarian saya' ). find ( : all , : limit => 10 ) # return 10 pertandingan pertama yang bersifat publik.
Operator kueri berikut didukung:
Ini adalah opsi default. 'Cat Dog' akan menemukan catatan yang cocok dengan 'kucing' dan 'anjing'.
'kucing -dog' akan menemukan catatan pencocokan 'kucing' dan bukan 'anjing'
'Cat +Me' akan menemukan catatan pencocokan 'kucing' dan 'saya', bahkan jika 'saya' lebih kecil dari min_word_size
Istilah yang dikutip dicocokkan sebagai frasa. '"Cat Dog"' akan menemukan catatan yang cocok dengan seluruh frasa. Istilah yang dikutip dapat didahului oleh operator yang tidak; 'Cat -“Big Dog”' dll. Istilah yang dikutip dapat mencakup kata -kata yang lebih pendek dari min_word_size .
Istilah yang dimulai dengan ^ akan cocok dengan catatan yang berisi kata yang dimulai dengan istilah tersebut. '^Cat' akan menemukan kecocokan yang berisi 'kucing', 'ketapel', 'Caterpillar' dll.
Istilah yang dikutip yang dimulai dengan ^ cocok dengan frasa apa pun yang dimulai dengan frasa ini. '^“Cat D”' akan menemukan catatan yang cocok dengan seluruh frasa “anjing kucing” dan “makan malam kucing”. Jenis pencarian ini berguna untuk input pelengkapan otomatis.
Pagination didukung melalui metode paginate_search yang argumen pertamanya adalah permintaan pencarian, diikuti oleh semua argumen Will_paginate standar.
@Images = Image . paginate_search ( 'girl' , : page => 1 , : per_page => 5 )
Karena with_query adalah ruang lingkup bernama, Willpaginate dapat digunakan secara normal.
@Images = Image . With_Query ( 'Girl' ). paginate ( : page => 1 , : per_page => 5 )
Blok konfigurasi dapat disediakan di file lingkungan atau inisialisasi Anda. Contoh menunjukkan mengubah ukuran kata min:
Actsasindexed . Konfigurasikan do | config | konfigurasi . min_word_size = 3 # Lebih banyak konfigurasi sesuai kebutuhan ... akhir
Ringkasan lengkap dari opsi konfigurasi yang tersedia dapat ditemukan di lib/acts_as_indexed/configuration.rb
Bertindak sebagai pendukung yang diindeks Heroku out-of-the-box. Indeks dibuat di direktori TMP, yang merupakan satu -satunya bagian tertulis dari sistem file heroku dyno. Harap baca dokumentasi Heroku (devcenter.heroku.com/articles/read-only-filesystem) mengenai sistem file mereka.
Lihat dokumentasi RDOC secara online.
Semua hal di atas paling disambut. [email protected]
Terima kasih banyak untuk semua kontributor untuk perpustakaan ini. Tanpa mereka banyak perbaikan bug dan fitur tidak akan terjadi.
Douglas F Shearer - Douglasfshearer.com
Thomas Pomfret
Philip Arndt
Fernanda Lopes
Alex Coles
Myles Eftos
Edward Anderson
Florent Guilleux
Ben Anderson
Theron Toomey
Uģis ozols
Gabriel Namiman
Roman Samoilov
David Turner
Pascal Hurni
Ryan Kopf
Saat ini ACTS_AS_INDEXED hanya berfungsi dengan karakter unicode saat digunakan dengan cara berikut:
https://gist.github.com/193903bb4e0d6e5debe1
Saya telah menulis ulang proses tokenisasi untuk memungkinkan penanganan ini di masa depan.