أنا أكتب إضافة تخزن بعض البيانات الإضافية لكل مستخدم (مشابهة لـ 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 للمفاتيح)، فهل من الأفضل إنشاء جدول واحد لواحد للبيانات الإضافية للمستخدم؟