دور برقم أوردر أو SKU أو إيميلإندكس في SQL. مش محتاج محرك بحث
خانة البحث بقت تجربة المنتجSearch index. SQL تفضل source of truth
LIKE بطّأ ومفيش ترتيب بالنِيّةFull-text. الكلمة توصل للمستندات عن طريق inverted index
iPhone و iphone و آيفون مش بيتقابلواAnalyzer: lowercase وتطبيع عربي ومرادفات. جرّب _analyze
الكفر طالع قبل الموبايلBM25 مع boosting: name أعلى من description
ifone بيرجع فاضيfuzziness AUTO على النص. مش على الـ SKU ومش على كل حرف في الاقتراح
جملة بعيدة أوي عايزها تبقى iPhoneدي مش typo. زود المسافة هيبوّظ النتائج
فلتر البراند غيّر ترتيب الصلةحط الشرط في filter مش في حساب الـ score
اخترت Apple فباقي البراندات اختفتaggregation البراند بكل الفلاتر ما عدا البراند
الاقتراحات تقيلةsearch_as_you_type من غير fuzzy، واستنى بعد آخر حرف
الوصف كله راجع في القائمةhighlight بمقطع fragment_size
عايز البحث يكبر مع الداتاshards على nodes. والـ replica للتوفر وللقراءة
زودت الشاردز والدنيا أبطأكل shard ليها تكلفة. الحجم يتخطط، مش يتضاعف بالتخمين
السعر في SQL اتغير والسيرش لأمتحدّثش الاتنين ورا بعض من غير أثر. استخدم outbox
الإندكس نجح والصف اتعلّم sent وبعدين اكتشفت إنه لأعلّم sent بعد النجاح. إعادة index بنفس id آمنة
أكتر من برنامج بيعدّل المنتجاتCDC من سجل الداتابيز، مش أمل إن كل كاتب فاكر الـ outbox
اليوزر شاف سعر قديم ثوانيEventual consistency. الدفع والمخزون من SQL
تغيير الـ analyzerإندكس جديد ثم تبديل alias. القديم مش هيتعمله تحليل تاني لوحده
عشرون مليون صف والبحث SKU بسSQL. العدد مش سبب تضيف Elasticsearch
سؤال بالمعنى والكلمات مختلفةVector. والـ SKU يفضل keyword. الدمج Hybrid بـ RRF مش بجمع الدرجات
Elasticsearch واقعالـ API يرد 503. متفتحش بورت 9200 لليوزر
خلّصت المذكرة لما
🧠 اختبر نفسك
١) مصدر الحقيقة فين، والسيرش فين؟
SQL للبيزنس. Elasticsearch فهرس بحث بالشكل اللي الصفحة محتاجاه.
٢) إيه اللي يخلي الموبايل يسبق الكفر؟
Relevance: BM25، وتطابق الاسم بوزن أعلى من الوصف.
٣) لو تحديث Elasticsearch فشل بعد ما SQL نجح، التصميم الصح يعمل إيه؟
يسيب حدث في الـ outbox ويتعاد الإندكس. الطلب مش يتقفل والداتا متخالفة بهدوء.