إذا وجدت هذا البرنامج المساعد مفيدًا ، فيرجى النظر في التبرع لإظهار دعمك!
www.paypal.com/cgi-bin/webscr؟cmd=_send-money
عنوان PayPal: [email protected]
يسمح هذا المكون الإضافي بإضافة البحث عن النص الكامل المغطى بالملاء إلى أي تطبيق Rails بدون تبعيات وأقل الإعداد.
GEM 'acts_as_indexed'
تشغيل 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 إلى الجزء العلوي من أي نماذج تريد فهرستها ، إلى جانب قائمة الحقول التي ترغب في فهرستها.
Post Class <ActivereCord :: Base ACTS_AS_INDEXED: الحقول => [: العنوان ،: الجسم] ... نهاية
لا تقتصر الحقول على حقول النماذج ، ولكن يمكن أن تكون أي طريقة مثيل للنموذج الحالي.
مستخدم الفئة <ActivereCord :: base
ACTS_AS_INDEXED: الحقول => [: العنوان ،: fullname]
def fullname
self.firstName + '' + self.lastname
نهاية
...
نهايةيمكن إضافة أي من خيارات التكوين في قسم التكوين الإضافي إلى استدعاء طريقة ACTS_AS_INDEXED. هذه سوف تتجاوز أي افتراضات أو تكوين عالمي.
يمكنك تحديد PROC التي تحتاج إلى تقييم إلى TRUE قبل فهرسة العنصر. هذا مفيد إذا كنت تريد فقط إدراج عناصر مع حالة معينة. يتم تمرير Proc على مثيل الكائن الحالي حتى تتمكن من الاختبار مقابل ذلك.
على سبيل المثال ، إذا كان لديك عمود مرئي يكون خطأ إذا كان المنشور مخفيًا ، أو صحيحًا إذا كان مرئيًا ، فيمكنك تصفية الفهرس عن طريق القيام:
Post Class <ActivereCord :: Base
ACTS_AS_INDEXED: الحقول => [: العنوان ،: الجسم] ،: if => proc.new {| post | post.visible؟ }
...
نهاية للبحث مع أكثر المباريات ذات الصلة التي تظهر أولاً ، اتصل بالطريقة find_with_index على النموذج الخاص بك ، وتمرير استعلام كوسيطة أولى. ستعيد المعلمة ids_only الاختيارية ، عند تعيينها إلى TRUE ، فقط معرفات أي سجلات مطابقة.
# إرجاع مجموعة من الكائنات post التي طلبت حسب الأهمية. my_search_results = post . find_with_index ( 'استعلام البحث الخاص بي ) # تمرير أي من ActivereCord ابحث عن خيارات البحث. my_search_results = post . find_with_index ( 'استعلام البحث الخاص بي " ، { : limit => 10 }) # إرجاع المباراة العشرة الأولى. # إرجاع مجموعة من المعرفات التي طلبها الأهمية. my_search_results = post . find_with_index ( 'استعلام البحث الخاص بي ، {} ، { : ids_only => true }) # => [12،19،33 ...
إذا كانت أهمية النتائج غير مهمة ، فاتصل بـ with_query النطاق على النموذج الخاص بك ، وتمرير استعلام كوسيطة.
# إرجاع مجموعة من الكائنات البريد. my_search_results = post . with_query ( 'استعلام البحث الخاص بي ) # سلسلة مع أي عدد من أساليب ActivereCord و named_scopes. my_search_results = post . عام . with_query ( 'استعلام البحث الخاص بي ). Find ( : all ، : limit => 10 ) # إرجاع المباراة العشرة الأولى التي هي عامة.
يتم دعم مشغلي الاستعلام التاليين:
هذا هو الخيار الافتراضي. سيجد "Cat Dog" سجلات مطابقة "Cat" و "Dog".
ستجد "Cat -Dog" سجلات مطابقة "Cat" وليس "كلب"
ستجد "Cat +Me" سجلات مطابقة "Cat" و "Me" ، حتى لو كانت "Me" أصغر من min_word_size
تتم مطابقة المصطلحات المقتبسة كعبارات. سيجد "Cat Dog" سجلات تطابق العبارة بأكملها. يمكن أن يسبق المصطلحات المقتبسة المشغل ؛ "Cat -" Big Dog "وما إلى ذلك يمكن أن تشمل المصطلحات المقتبسة الكلمات أقصر من min_word_size .
ستطابق المصطلحات التي تبدأ بـ ^ السجلات التي تحتوي على كلمة تبدأ بالمصطلح. ستجد "^Cat" مباريات تحتوي على "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 ( 'فتاة' ). تراجع ( : صفحة => 1 ، : per_page => 5 )
يمكن توفير كتلة التكوين في ملفات البيئة الخاصة بك أو المهيئات. مثال يوضح تغيير حجم كلمة min:
ActSasIndexed . تكوين do | التكوين | تكوين . min_word_size = 3 # المزيد من التكوين كما هو مطلوب ... نهاية
يمكن الاطلاع على مجموعة كاملة من خيارات التكوين المتاحة في lib/acts_as_indexed/configuration.rb
يعمل بمثابة فهرسة يدعم Heroku خارج الصندوق. يتم إنشاء الفهرس في دليل TMP ، وهو الجزء الوحيد القابل للكتابة من نظام ملفات Heroku Dyno. يرجى قراءة وثائق Heroku (DevCenter.heroku.com/articles/read-only-filesystem) فيما يتعلق بنظام الملفات.
عرض وثائق RDOC عبر الإنترنت.
كل ما سبق موضع ترحيب كبير. [email protected]
شكر كبير لجميع المساهمين في هذه المكتبة. بدونهم ، لم تكن هناك العديد من الإثارات والميزات.
Douglas F Shearer - Douglasfshearer.com
توماس بومفريت
فيليب أرندت
فرناندا لوبيز
أليكس كولز
Myles eftos
إدوارد أندرسون
فلورنت غيلوكس
بن أندرسون
ثيرون تومي
uģis ozols
غابرييل ناميمان
رومان سامويلوف
ديفيد تيرنر
باسكال هيرني
ريان كوبف
في الوقت الحالي ، يعمل ACTS_AS_INDEXED فقط مع أحرف Unicode عند استخدامه بالطريقة التالية:
https://gist.github.com/193903bb4e0d6e5debe1
لقد أعادت كتابة عملية الرمز المميز للسماح بمعالجة أسهل في المستقبل.