หากคุณพบว่าปลั๊กอินนี้มีประโยชน์โปรดพิจารณาการบริจาคเพื่อแสดงการสนับสนุนของคุณ!
www.paypal.com/cgi-bin/webscr?cmd=_send-money
ที่อยู่ PayPal: [email protected]
ปลั๊กอินนี้อนุญาตให้เพิ่มการค้นหา FullText แบบบูลีนที่ต้องใช้ในแอพใด ๆ โดยไม่มีการพึ่งพาและการตั้งค่าขั้นต่ำ
gem 'acts_as_indexed'
Run bundle install เสร็จแล้ว.
./script/plugin ติดตั้ง git: //github.com/dougal/acts_as_indexed.git
หากคุณไม่ได้ติดตั้ง GIT แต่ยังต้องการปลั๊กอินคุณสามารถดาวน์โหลดปลั๊กอินจากหน้า GitHub (github.com/dougal/acts_as_indexed) และแกะลงในไดเรกทอรี vendor/plugins ของแอพ Rails ของคุณ
เมื่ออัปเกรดเป็น ACTS_AS_INDEXED เวอร์ชันใหม่ขอแนะนำให้คุณลบไดเรกทอรีดัชนีและอนุญาตให้สร้างใหม่
เพิ่ม acts_as_indexed ไปที่ด้านบนของรุ่นใด ๆ ที่คุณต้องการจัดทำดัชนีพร้อมกับรายการฟิลด์ที่คุณต้องการจัดทำดัชนี
คลาสโพสต์ <Activerecord :: base ACTS_AS_INDEXED: ฟิลด์ => [: title ,: body] - จบ
ฟิลด์ไม่ จำกัด เฉพาะฟิลด์โมเดล แต่อาจเป็นวิธีการอินสแตนซ์ของโมเดลปัจจุบัน
ผู้ใช้ชั้นเรียน <Activerecord :: base
ACTS_AS_INDEXED: ฟิลด์ => [: ที่อยู่ ,: fullName]
def fullname
self.firstname + '' + self.lastname
จบ
-
จบตัวเลือกการกำหนดค่าใด ๆ ในส่วนการกำหนดค่าเพิ่มเติมสามารถเพิ่มเป็นวิธีการโทร ACTS_AS_INDEXED สิ่งเหล่านี้จะแทนที่ค่าเริ่มต้นหรือการกำหนดค่าส่วนกลาง
คุณสามารถระบุ Proc ที่ต้องประเมินเป็น TRUE ก่อนที่รายการจะได้รับการจัดทำดัชนี สิ่งนี้มีประโยชน์หากคุณต้องการเฉพาะรายการที่มีสถานะบางอย่างที่จะรวม PROC ถูกส่งผ่านอินสแตนซ์ของวัตถุปัจจุบันเพื่อให้คุณสามารถทดสอบได้
ตัวอย่างเช่นหากคุณมีคอลัมน์ที่มองเห็นได้ซึ่งเป็นเท็จหากโพสต์ถูกซ่อนหรือเป็นจริงหากมองเห็นได้คุณสามารถกรองดัชนีได้โดยทำ:
คลาสโพสต์ <Activerecord :: base
ACTS_AS_INDEXED: ฟิลด์ => [: title ,: body] ,: if => proc.new {| โพสต์ | post.visible? -
-
จบ หากต้องการค้นหาด้วยการจับคู่ที่เกี่ยวข้องมากที่สุดที่ปรากฏก่อนให้โทรหาวิธี find_with_index บนโมเดลของคุณผ่านการสืบค้นเป็นอาร์กิวเมนต์แรก พารามิเตอร์ ids_only เสริมเมื่อตั้งค่าเป็น TRUE จะส่งคืนเฉพาะ ID ของระเบียนที่ตรงกันใด ๆ
# ส่งคืนอาร์เรย์ของวัตถุโพสต์ที่สั่งโดยเกี่ยวข้อง my_search_results = โพสต์ find_with_index ( 'ข้อความค้นหาของฉัน' ) # ผ่านตัวเลือกการค้นหา Activerecord ใด ๆ ในการค้นหา my_search_results = โพสต์ find_with_index ( 'คำค้นหาการค้นหาของฉัน' , { : limit => 10 }) # ส่งคืนการแข่งขัน 10 ครั้งแรก # returns array ของ ID ที่สั่งซื้อตามความเกี่ยวข้อง my_search_results = โพสต์ find_with_index ( 'ข้อความค้นหาของฉัน' , {}, { : ids_only => true }) # => [12,19,33 ...
หากความเกี่ยวข้องของผลลัพธ์ไม่สำคัญให้โทรหาขอบเขตชื่อ with_query ในโมเดลของคุณผ่านการสอบถามเป็นอาร์กิวเมนต์
# ส่งคืนอาร์เรย์ของวัตถุโพสต์ my_search_results = โพสต์ with_query ( 'คำค้นหาการค้นหาของฉัน' ) # เชนมันด้วยวิธี Activerecord จำนวนเท่าใดก็ได้และ Named_scopes my_search_results = โพสต์ สาธารณะ . with_query ( 'คำค้นหาการค้นหาของฉัน' ) ค้นหา ( : ทั้งหมด , : limit => 10 ) # ส่งคืนการแข่งขัน 10 ครั้งแรกซึ่งเป็นสาธารณะ
รองรับผู้ให้บริการแบบสอบถามต่อไปนี้:
นี่คือตัวเลือกเริ่มต้น 'Cat Dog' จะพบบันทึกที่ตรงกัน 'Cat' และ 'Dog'
'cat -dog' จะพบระเบียนที่ตรงกัน 'แมว' และไม่ใช่ 'สุนัข'
'cat +me' จะพบระเบียนที่ตรงกัน 'แมว' และ 'ฉัน' แม้ว่า 'ฉัน' จะเล็กกว่า min_word_size
ข้อกำหนดที่ยกมานั้นถูกจับคู่เป็นวลี '“ Cat Dog”' จะพบบันทึกที่ตรงกับวลีทั้งหมด ข้อกำหนดที่ยกมาสามารถนำหน้าโดยผู้ให้บริการที่ไม่ได้; 'Cat -“ Big Dog”' ฯลฯ คำศัพท์ที่ยกมาอาจรวมคำที่สั้นกว่า min_word_size
ข้อกำหนดที่เริ่มต้นด้วย ^ จะตรงกับบันทึกที่มีคำเริ่มต้นด้วยคำศัพท์ '^cat' จะพบการแข่งขันที่มี 'แมว', 'catapult', 'Caterpillar' ฯลฯ
คำที่ยกมาซึ่งเริ่มต้นด้วย ^ ตรงกับวลีใด ๆ ที่เริ่มต้นด้วยวลีนี้ '^“ Cat D”' จะพบบันทึกที่ตรงกับวลีทั้งหมด“ Cat Dog” และ“ Cat Dinner” การค้นหาประเภทนี้มีประโยชน์สำหรับอินพุตอัตโนมัติ
การปนเปื้อนได้รับการสนับสนุนผ่านวิธี paginate_search ซึ่งมีอาร์กิวเมนต์แรกคือคำค้นหาการค้นหาตามด้วยอาร์กิวเมนต์ Will_Paginate มาตรฐานทั้งหมด
@Images = รูปภาพ paginate_search ( 'girl' , : page => 1 , : per_page => 5 )
เนื่องจาก with_query เป็นขอบเขตที่มีชื่อ Willpaginate สามารถใช้ในแบบปกติ
@Images = รูปภาพ with_query ( 'สาว' ) paginate ( : page => 1 , : per_page => 5 )
บล็อกการกำหนดค่าสามารถระบุได้ในไฟล์สภาพแวดล้อมของคุณหรือเริ่มต้น ตัวอย่างการแสดงการเปลี่ยนขนาดคำขั้นต่ำ:
Actsasindexed กำหนดค่า DO | กำหนดค่า | กำหนดค่า . min_word_size = 3 # กำหนดค่าเพิ่มเติมตามที่ต้องการ ... จบ
ตัวเลือกการกำหนดค่าที่มีอยู่เต็มรูปแบบสามารถพบได้ใน lib/acts_as_indexed/configuration.rb
การกระทำที่จัดทำดัชนีสนับสนุน Heroku นอกกรอบ ดัชนีถูกสร้างขึ้นในไดเรกทอรี TMP ซึ่งเป็นเพียงส่วนเดียวที่เขียนได้ของระบบไฟล์ Dyno Heroku โปรดอ่านเอกสารของ Heroku (devcenter.heroku.com/articles/read-only-filesystem) เกี่ยวกับระบบไฟล์ของพวกเขา
ดูเอกสาร RDOC ออนไลน์
ยินดีต้อนรับทั้งหมดข้างต้น [email protected]
ขอบคุณมากสำหรับผู้มีส่วนร่วมในห้องสมุดนี้ หากไม่มีพวกเขาแก้ไขข้อผิดพลาดและคุณสมบัติมากมายจะไม่เกิดขึ้น
Douglas F Shearer - douglasfshearer.com
Thomas Pomfret
Philip Arndt
Fernanda Lopes
อเล็กซ์โคลส์
myles eftos
เอ็ดเวิร์ดแอนเดอร์สัน
florent guilleux
เบ็นแอนเดอร์สัน
Theron Toomey
uģคือ ozols
กาเบรียลนามาแมน
โรมัน Samoilov
เดวิดเทอร์เนอร์
Pascal Hurni
Ryan Kopf
ในขณะนี้ ACTS_AS_INDEXED ทำงานกับอักขระ Unicode เท่านั้นเมื่อใช้ในวิธีต่อไปนี้:
https://gist.github.com/193903BB4E0D6E5DEBE1
ฉันได้เขียนกระบวนการโทเค็นใหม่เพื่อให้การจัดการเรื่องนี้ง่ายขึ้นในอนาคต