تطبيق تصحيح على بحث Discourse

أنا أكتب إضافة تخزن بعض البيانات الإضافية لكل مستخدم (مشابهة لـ discourse-user-notes، لكنها ليست مقتصرة على الموظفين)، وأود أن أتمكن من البحث فيها.

من المفترض أن هذا يتضمن تعديلًا ما في lib/search.rb. أنا أدرك أن إضافة بحث Algolia تتجاوز ما يظهر في النوافذ المنبثقة لمربع البحث، لكني أود مثاليًا أن يؤثر هذا أيضًا على صفحة النتائج الفعلية.

هل لدى أي شخص اقتراحات حول من أين أبدأ؟

يمكنك توسيع البحث من خلال إضافة مكون إضافي، على سبيل المثال يمكنك إضافة فلتر متقدم مثل هذا:

  require_dependency 'search'
  if Search.respond_to? :advanced_filter
    Search.advanced_filter(/with:video/) do |posts|
      posts.where("posts.cooked LIKE '%<video %'")
    end
  end

سيؤدي ما سبق إلى عرض المنشورات التي تحتوي على مقاطع فيديو فقط عندما تتضمن مربع البحث الكلمة المفتاحية with:video. راجع أيضًا فلتر الشارة المتقدم كمثال لاستعلام بحث يأخذ بيانات المستخدم في الاعتبار.

رائع. هل يعني إضافة فلتر متقدم أن هذه النتائج ستظهر أيضًا في بحث عام (بدون فلتر متقدم)؟

نعم، يمكنك استخدام كلمة بحث متقدمة في نافذة البحث المنبثقة وكذلك في بحث الصفحة الكاملة.

لا نحتاج حقًا إلى الاحتفاظ بهذا الحماية بعد الآن، فقد كانت هذه الواجهة البرمجية موجودة منذ فترة طويلة جدًا.

في هذا الصدد، هل سيعمل PluginStore بشكل جيد هنا؟ أتخيل أن هذا سيؤدي إلى عدد كبير من عمليات المسح الشامل (في غياب فهرس متوافق مع LIKE للمفاتيح)، فهل من الأفضل إنشاء جدول واحد لواحد للبيانات الإضافية للمستخدم؟

ينبغي تجنب PluginStore، قم بإنشاء جداول لإضافتك.