سؤال

يمكنني الحصول على مشكلة حيث لن يقوم Solr بمسح الفهرس أثناء استيراد كامل.

جميع الخوادم تعمل Solr 3.4، فإن التكوين هو الفانيليا كما يمكن أن يكون.

حاولت ذلك على بيئة تطويرنا وعلى سبيل المثال على جهاز الكمبيوتر الخاص بي، وتلقى نتائج مماثلة.

المخطط بسيط نوعا ما، هذه هي النقاط البارزة: giveacodicetagpre.

ملاحظة: - يتم احتساب حقل المستند_ID في العرض المخصص الذي يستخدم لملء الفهرس، وهو مزيج من الحقول الأخرى ليس في هذا الفهرس، ولكنه يتدفق من Entity_ID. فريدة من نوعها. - حقل Entity_ID هو مفتاح بضعة طاولات، وللوثيقة نفسها، يمكن أن تتغير بعنف بين تحديث وآخر.

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

أحصل على: giveacodicetagpre.

ثم أنا تحديث: giveacodicetagpre.

(أعرف أن نظيفة، الالتزام، وتحسين زائدة عن الحاجة، لكنني استخدمتها فقط للتأكد) وبعد فترة من الوقت، أحصل على رسالة أن كل شيء على موافق.

ثم استفسني الفهرس مرة أخرى: giveacodicetagpre.

واحصل على: giveacodicetagpre.

ولكن في قاعدة البيانات يختلف Entity_ID!

أرى أنه تم تحديث الطابع الزمني، بحيث تم لمس التسجيل، ولكن لماذا يتم الاحتفاظ بالقيمة القديمة؟

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

المحلول

سأقوم بتشغيل عملية DataImporThandler الخاصة بك (DIH) من خلال وضع التطوير التفاعلي يمكنك تأكيد أن استعلام قاعدة البيانات الخاص بك يسترجع Entity_ID أنك تتوقع.نظرا لأن الطابع الزمني على إدخال سولل يتم تحديثه، فإن عملية DIH الخاصة بك قيد التشغيل، لكنني أظن أن السبب لهذا الكذب في الطريقة التي يتم بها استرداد البيانات.

نصائح أخرى

في أي وقت أقوم بعملية مثل هذا مع Solr، أقوم دائما بمسح الفهرس يدويا أولا باستخدام Curl لتكون 100٪ متأكدا منحتها.هنا برنامج تعليمي: http://www.alphadevx.com/A / 365 - مسح Solr-Search-Index

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