Elasticsearch / دليل حلول تحريري

تشخيص مستند قُبل لكنه لا يظهر في البحث

تتبّع قبول كل عنصر والهدف الذي كُتب إليه وتمثيله المفهرس وحدود refresh، قبل تعديل البيانات أو إعادة إرسالها.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى

قاعدة معرفة للقراءة فقط · بلا تعليقات عامة

تعرّف على الأعراض

يبلغ المنتج نجاح طلب HTTP، لكن مجموعة مقتنيات المتحف لا تعرض القطعة. قد ينجح GET بالمعرّف بينما يفشل البحث في العنوان، أو يحتوي _source المعاد حقلاً لا يجده شرط دقيق. احتفظ باسم الفهرس والمعرّف ومرحلة الطلب والاستجابة الأصلية بعد حجب المعلومات الحساسة.

افهم الأسباب المحتملة

  • ربما فشل عنصر Bulk داخل استجابة نقل ناجحة، أو استهدفت الكتابة فهرساً آخر، أو جرى تجاهل الحقل أو تحليله بطريقة لا يوافقها الاستعلام. وقد تكون كتابة حديثة مقبولة في انتظار refresh حتى تظهر في البحث. هذه طبقات مستقلة يحتاج كل منها إلى دليل مختلف.

أثبت نتيجة العنصر الفعلية

في طلب Bulk، افحص errors والنتيجة المرتبة لكل عنصر. تثبت HTTP 200 وصول استجابة Bulk فقط. اربط القطعة بإجراء الإدخال الموافق لها وبيانات تعريفه، واحتفظ بالتفاصيل التي تشرح رفض التعيين أو خط معالجة البيانات عند الإدخال. إذا جعل فقد الاتصال النتيجة مجهولة، فطابقها باستخدام المعرّف الثابت بدلاً من توليد معرّف جديد وإعادة الإرسال من دون معرفة النتيجة. طابق أعداد المقبول والمرفوض والقابل للإعادة والمجهول مع الإجراءات المرسلة. وقد يتعذر إصلاح قطعة حُذف مصدرها بالفعل إذا لم توجد نقطة تحقق دائمة لدى المنتج.

تحقق من الهدف المنطقي والمادي

قارن الفهرس أو الاسم البديل الذي يكتب إليه المنتج بهدف القارئ وتكوين الأسماء البديلة المعتمد حالياً. فقد توجد _id نفسها في عدة فهارس. وقد يترك ترحيل فهرس ذي إصدار عميلاً يكتب مباشرة إلى v1، بينما يقرأ الآخرون عبر v2. لا تثبت الاستجابة التخطيطية أدناه إلا الهدف الاصطناعي ونتيجة العنصر المحددين فيها؛ ولا تثبت أن اسم البحث البديل يبحث في ذلك الهدف. راجع التوجيه أيضاً إذا كان التطبيق يستخدم توجيهاً مخصصاً، واحفظ تفاصيل العنوان وبيانات الاعتماد خاصة.

json مثال تقني توضيحي؛ النتائج المنطقية مستنتجة ولم تُختبر على المحرك.
{"_index":"museum-artifacts-v1","_id":"art-101","result":"created"}

هذه هوية تخطيطية لعنصر قُبل، وليست دليلاً ملتقطاً من خدمة. قارنها بهدف القارئ الفعلي.

افحص التعيين ومفردات الاستعلام

اقرأ تعيين الحقل عبر مسار مصرح به. ففي نموذج الفهرس العادي الذي يخزن المصدر، قد يحتفظ dynamic:false بحقل داخل _source من دون جعله قابلاً للبحث. وقد يفهرس text مصطلحات بأحرف صغيرة بينما يرسل term قيمة دقيقة غير متوافقة. يعزل جسم Analyze تحويل العنوان؛ ولا يُنفذ طلب هنا. وإضافة حقل فرعي جديد إلى التعيين لا تعيد بناء المستندات القديمة تلقائياً؛ لذلك اختبر قطعة تاريخية إلى جانب قطعة فُهرست حديثاً.

json مثال تقني توضيحي؛ النتائج المنطقية مستنتجة ولم تُختبر على المحرك.
{"analyzer":"standard","text":"BRONZE compass"}

في POST /_analyze داخل مختبر مصرح به، المصطلحان المتوقعان هما bronze وcompass. تفحص الدورة بيانات JSON والتوقع المنطقي فقط.

افصل تأخر التحديث عن الرفض الدائم

قد يرى GET الفوري كتابة قبل أن تتيحها refresh للبحث. تحقق من الهدف والمعرّف نفسيهما، ثم افحص سياسة refresh الموثقة ومتطلب حداثة المنتج. لا تفرض refresh بعد كل حدث كعلاج عام، فقد يزيد ذلك عمل الفهرسة. وإذا احتاج اختبار مصرح به إلى رؤية بحث بعد الكتابة، فاستخدم سلوك refresh المدعوم بحدوده الموثقة، وقِس مسار الإدخال كاملاً. أما العنصر المرفوض فلن يصبح قابلاً للبحث بمجرد الانتظار مدة أطول.

تحقق من نجاح الإصلاح

تحقق من قطعة معلومة عبر هدف القارئ المقصود، باستخدام تمثيل الاستعلام الصحيح وبعد حد الرؤية المطلوب. طابق نتيجة عنصر المنتج، وتأكد من أن إعادة محاولة مكررة لا تنشئ قطعة ثانية. لم يُنفذ أثناء تأليف هذا الدليل طلب فهرسة أو refresh أو بحث.

امنع تكرار المشكلة

  • احتفظ بهويات ثابتة ومحاسبة لكل عنصر Bulk وتعيينات صريحة وأمثلة اختبار للمحلل وعقد حداثة متفق عليه. ضمّن المستندات القديمة وترحيلات الأسماء البديلة في مراجعات التكامل، واحتفظ بمصدر قابل للاستعادة حتى مطابقة نتائج النظام التالي.

المراجع الرسمية