تقديم نتائج SOLR مدمجة مع بيانات المستخدم الفردية

StackOverflow https://stackoverflow.com/questions/3434737

  •  26-09-2019
  •  | 
  •  

سؤال

أبحث عن استراتيجية لتقديم تصنيف مستخدم فردي على مستند SOLR. بمعنى آخر. يحصل المستخدمون على وضع تصنيف 1-5 على مستند وأريد تقديم ذلك مرة أخرى لهم أثناء البحث.

أستطيع أن أفكر في نهجين عامين.

  1. قم بتخزين التصنيفات في RDBMS الخاصة بي والاستعلام عنها بعد الحصول على نتائج SOLR ودمج البيانات في منطق العمل.

  2. أيضًا قم بتخزين معلومات التقييم هذه في Solr بحيث تعود مع البيانات لمستخدم معين. كل ما يمكنني التفكير فيه هو أسماء السمات مع معرف المستخدم وقيمة التصنيف.

بافتراض قاعدة مستخدم كبيرة ، أشعر بالقلق من أن النهج 2 يمكن أن يخرج عن السيطرة. كيف "واسعة" يمكنك الذهاب مع وثيقة SOLR؟ هل يمكنك وضع عشرات الآلاف من السمات على المستند؟ هل سيظل تأثير الأداء يترك النهج 2 أفضل من الضربة الثانية على SQL DB (النهج 1)؟

هل هناك طرق أخرى لا أفكر فيها؟

هل كانت مفيدة؟

المحلول

لقد استخدمت رقم النهج 1. نظرًا لأن عدد التقييمات منخفض (ربما أقل من 1000) لكل مستخدم ، فأنا فقط أقوم بتخزين جميع تصنيفاتها على تسجيل الدخول والتخزين في الذاكرة. ثم ، عند إظهار نتائج SOLR ، يكون سريعًا جدًا في تطبيق التصنيفات عند الحاجة.

هذا يوفر لك من إجراء استدعاء قاعدة بيانات لكل نتيجة ولا يقلل من الخادم أكثر من اللازم. بالإضافة إلى ذلك ، عندما يقوم المستخدم بتحديث تصنيفاته ، يمكنك فقط تحديث DB وإبطال ذاكرة التخزين المؤقت. ليس عليك إجراء مكالمة تحديث إلى مستند SOLR.

نصائح أخرى

قد يكون الخيار الثالث هو إضافة فهرس SOLR إضافي يحتوي فقط على معرف المستند ومعرف المستخدم والنتيجة التي تم توزيعها على هذا المستند من قبل المستخدم. سيكون الأمر بسيطًا وسريعًا للغاية للاستعلام عن النتيجة بواسطة المستند والمستخدم.

سأذهب مع الرقم 2 ، وأقوم فقط بتحديث التصنيف بشكل دوري. وبهذه الطريقة يمكنك المزج في التصنيف في درجة الصلة التي تحسبها SOLR.

أعتقد أن ذلك يعتمد على ما إذا كنت مثل Digg/Reddit ، حيث يؤثر التصويت لأعلى/لأسفل بشكل كبير على ما يظهر ، أو إذا كان مجرد عامل آخر في التسجيل ، مثل مدى جودة المستند. إذا كان ذلك مجرد عامل آخر ، فقم بتحديث المستند الخاص بك مرة واحدة في اليوم أو أسبوع أو مرة واحدة في الشهر في ساعات الهادئة ....

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top