SOLR DIH - كيفية التعامل مع المستندات المحذوفة؟
-
20-09-2019 - |
سؤال
أنا ألعب مع البحث الذي يعمل بنظام WebApp الخاص بي ، وأحسب أنه من الأفضل استخدام DataImporthandler للتعامل مع المزامنة مع التطبيق عبر قاعدة البيانات. أنا أحب أناقة فقط التحقق من last_updated_date
ميدان. أشياء جيدة. ومع ذلك ، لا أعرف كيفية التعامل مع حذف المستندات مع هذا النهج. الطريقة التي أراها ، لدي خياران. يمكنني إما إرسال رسالة صريحة إلى Solr من العميل عند حذف المستند ، أو يمكنني إضافة علامة "محذوفة" وترك الكائن في قاعدة البيانات ، بحيث يلاحظ Solr أن المستند قد تغير ويتم الآن " " يمكنني إضافة مرشح استعلام من شأنه أن يتجاهل النتائج مع العلم المحذوف ، لكن يبدو أنه من غير الفعال تضمين جميع المستندات المحذوفة في مؤشر Lucene. ماذا يفعل الناس الآخرون؟
المحلول
هذه هي خياراتك:
- يستخدم أوامر DIH الخاصة $ deletedocbyid أو $ deletedocbyquery (يتطلب SOLR 1.4+)
- استخدم ال المعلمة نظيفة من DIH لحذف الفهرس بأكمله قبل الاستيراد.
- يستخدم preimportdelequery لتحديد ما سيتم تنظيفه قبل الاستيراد. (يتطلب SOLR 1.4+)
- استخدم مشغلات قاعدة البيانات بدلاً من DIH لإدارة تحديث الفهرس.
- إذا كنت تستخدم نوعًا من ORM ، فاستخدم إمكانيات اعتراضها بدلاً من DIH. على سبيل المثال يمكنك استخدامه أحداث السبات لتحديث الفهرس عند التحديث ، أدخل أو حذف.
نصائح أخرى
أحب أن أحصل على علامة "محذوفة" حتى لا أحذف فعلي بياناتي! يعتمد على كيف أنت بجنون العظمة. أحب اقتراحات موريسيو ...