الجواب القصير. بحث التطبيق ليس حقلاً يبحث عن الكلمة الدقيقة في اسم المنتج: بل فهرس يُبنى من عدة حقول لكل منتج، الاسم بالفرنسية، الاسم بالعربية، المرادفات والمتغيرات بأحرف لاتينية، المرجع، العلامة، التعبئة؛ وتطبيع يوحّد أشكال العربية ويزيل الحركات ويفصل الوحدات عن الأرقام؛ ومرادفات مكتوبة يدوياً مع المسيّر، لأن لا محرك يعرف أن «zit» زيت ولا أن «smid» سميد؛ وتحمّل أخطاء مضبوط، خطأ من خمسة أحرف واثنان من تسعة؛ وترتيب تأتي فيه قواعد النص أولاً، الكلمات الموجودة، الأخطاء، التقارب، ثم قواعد العمل، التوفر، السعر لهذا الزبون، المنتجات المطلوبة سابقاً، وأبداً كمرشّحات صامتة؛ ومجموعة مائتي طلب حقيقي تُعاد مع كل تغيير؛ وسجل صفر نتيجة هو مصدر المرادفات التالية. ستة أسابيع، الأول بلا مسّ بالمحرك.
هذا الدليل موجّه إلى المؤسس المقيم في فرنسا الذي تعرض بوابته أو سوقه «لا نتائج» لزبائن يكتبون بالدارجة، وإلى تاجر الجملة في الجزائر الذي يتصل تجاره بالمندوب لأنهم لا يجدون المنتج في التطبيق، وإلى من يقارن عروضاً تكون فيها «البحث» كلمة واحدة. لا يتناول البحث في الوثائق بالذكاء الاصطناعي، الموصوف في دليل الذكاء الاصطناعي في التطبيق، لكنه يرتبط به في النهاية؛ بل يصف ما يُبنى بين ضغطة الزبون وقائمة النتائج.
ما تقوله الأرقام
تحمّل الأخطاء قابل للضبط لا سحر. تقول وثائق Meilisearch، محرك البحث المفتوح الذي نستعمله كثيراً، إن تحمّل الأخطاء مفعَّل افتراضياً، وإن خطأً واحداً يُقبل من خمسة أحرف واثنين من تسعة، وإن الخطأ في الحرف الأول يُحسب مضاعفاً؛ وقواعد ترتيبها الافتراضية تُطبَّق بالترتيب الكلمات، الأخطاء، التقارب، السمة، الفرز، الدقة، والقواعد المخصصة، حقل رقمي مفروز، تُوضع في النهاية. وللعربية تعلن الوثائق نفسها تقطيع أداة التعريف «ال» وتطبيعاً بـ التفكيك وتحويل الأرقام وإزالة العلامات غير المتباعدة؛ ولا تقول شيئاً عن أشكال الألف التي نوحّدها بأنفسنا قبل الفهرسة. وما يفرضه ذلك: «huille» تجد «huile»، و«الزيت» تجد «زيت»، لكن «zit» لا تجد شيئاً بلا مرادف يكتبه أحد.
قاعدة البيانات تعرف الكثير أصلاً. توفر PostgreSQL، التي تستعملها أغلب تطبيقاتنا، بحثاً في النص الكامل بقواميس متسلسلة، منها قاموس مرشّح يزيل الحركات ومجذّرات Snowball التي «تتعرف على كل شيء» وفق الوثائق فتُوضع في نهاية السلسلة؛ ولا تسرد الصفحة اللغات، ولا نعتمد على مجذّر للعربية الدارجة. وامتداد الثلاثيات فيها يقيس تشابه سلسلتين بعتبة افتراضية 0,3، ويتجاهل الأحرف غير الأبجدية الرقمية، وفهارسه تسرّع بحث `LIKE` و`ILIKE`؛ وهذا يكفي لمكتب خلفي من بضعة آلاف من المراجع. وما يفرضه ذلك: السؤال الأول ليس «أي محرك» بل «أي حجم، وأي استعمال، ومن سيشغّله».
وما لا يوجد في أي مكان: قاموس للدارجة بأحرف لاتينية. «zit» و«zite» و«zeit» و«smid» و«sokar» و«7lib» للحليب بالرقم مكان الحرف: لكل شركة قاموسها، ويُبنى مما يكتبه زبائنها فعلاً. ولهذا فالرقم الذي يُقرأ ليس عدد عمليات البحث بل حصة صفر نتيجة، طلباً طلباً، بالزبون والوقت، ولهذا يُقضى الأسبوع الأول من المشروع مع المندوبين وهاتف المسيّر لا مع محرك. وما لم نجده: قياس علني لاستعمال الدارجة اللاتينية في عمليات البحث في الجزائر؛ وما نراه في التجريب أنها السبب الأول لصفر نتيجة في كتالوج غذائي، ونقوله ملاحظةً لا إحصائية.
بحث «zit 5l»، من الضغطة إلى النتيجة
البحث لا يوصف بمحركه بل بما يحدث لما يكتبه الزبون، حرفاً حرفاً، حتى النتيجة والسجل.
الضغطة: يكتب التاجر «zit 5l» بالدارجة بأحرف لاتينية، بلا حركات، بلا مسافة قبل الوحدة، ويُطلق البحث مع كل حرف. التطبيع يحوّل إلى أحرف صغيرة، ويفصل «5l» إلى «5 l»، ويستشير المرادفات: «zit» تصير أيضاً «huile»؛ وكان خطأ سيُحتمل من خمسة أحرف. المطابقة تتم على مستند المنتج، وهو ليس سطراً في قاعدة بيانات بل مجموعة حقول مفهرسة: الاسم بالفرنسية يجد «huile» و«5 l»، والاسم بالعربية كان سيجد «زيت» بلا أداة التعريف، وحقل المرادفات، المكتوب يدوياً في الأسبوع الأول، يجد «zit» نفسها.
النتيجة تعرض الاسم باللغتين والتوفر والسعر لهذا الزبون، لأن تاجرين لا يريان الكتالوج نفسه بالسعر نفسه، كما يصف دليل بوابة B2B. السجل يكتب الطلب وعدد النتائج وزمن الاستجابة ثم النقرة؛ وكل أسبوع، حصة صفر نتيجة وقائمة المصطلحات التي لم تعطِ شيئاً، وهي مصدر المرادفات التالية. وبحث لا يسجّل لا يتحسن أبداً: يفشل بالطريقة نفسها للكلمة نفسها شهوراً.
بناء الفهرس، في ست خطوات
خلف النتيجة ست خطوات، والثالثة هي التي لا يقوم بها أي محرك مكانكم.
الحقول: لكل منتج، الاسم بالفرنسية، الاسم بالعربية، المرادفات والمتغيرات بأحرف لاتينية، المرجع، الباركود، العلامة، الفئة، الوحدة والتعبئة؛ مستند لكل منتج بوزن لكل حقل، والمرجع يزن أكثر من الوصف. التطبيع: أحرف صغيرة، إزالة الحركات، توحيد أشكال الألف والتاء المربوطة، مواءمة الأرقام العربية واللاتينية، فصل الوحدات عن الأرقام؛ يُطبَّق على الفهرس والطلب بالطريقة نفسها. المرادفات: تُكتب يدوياً مع المسيّر والمندوبين، مائتا سطر في الأسبوع الأول، من الدارجة اللاتينية إلى الاسم بالفرنسية، الاختصارات، المراجع القديمة، العلامات المنطوقة بطريقة أخرى؛ تُخزَّن في قاعدتكم، مُصدَرة، وتُتحقَّق على مجموعة الطلبات.
الفهرس: محرك مخصص لكتالوج يُستشار من الهاتف، أو فهرس النص الكامل والثلاثيات في القاعدة لمكتب خلفي؛ مستند لكل منتج يُحدَّث مع كل تعديل في السعر أو المخزون، لأن نتيجة تعرض سعر الأمس تُضيّع طلبية. قواعد العمل: التوفر، السعر لهذا الزبون، المنتجات المطلوبة سابقاً، منتجات الجولة، الجديد، تُوضع بعد قواعد النص كقواعد ترتيب، وأبداً كمرشّحات تُخفي منتجاً. مجموعة الطلبات: مائتا طلب حقيقي بالمنتج المنتظر، تُعاد مع كل تغيير في المرادفات أو التطبيع أو القواعد، بدرجة؛ يُرفض التسليم إن انخفضت الدرجة، على مبدأ الاختبارات نفسه الموصوف في دليل التسليم.
«لا محرك يعرف أن «zit» زيت؛ هي مرادف يكتبه أحد، وسجل صفر نتيجة يقول أي المرادفات ناقصة.»
لماذا النتيجة 1 في المقدمة
الترتيب هو ما يراه الزبون دون أن يعرف: الطلب نفسه، المنتجات نفسها، وترتيب يقرر هل يطلب أم يتصل بالمندوب.
قواعد النص أولاً: المنتج الذي يحتوي كل كلمات الطلب يسبق الذي لا يحتوي إلا واحدة؛ وبلا خطأ قبل مع خطأ؛ والكلمات المتقاربة قبل المتباعدة. هذا الترتيب الافتراضي للمحركات الشائعة ولا نقاش فيه. قواعد العمل بعدها: المتوفر قبل النافد، لكن النافد يبقى ظاهراً، لأن منتجاً يختفي يجعل التاجر يظن أنه لم يعد موجوداً؛ والسعر لهذا الزبون، لأن منتجاً بسعره المتفاوَض عليه يستحق أن يرتفع؛ والمنتجات التي طلبها سابقاً، لأنه كثيراً ما يبحث عن الشيء نفسه. تُكتب هذه القواعد مع المسيّر في الأسبوع الرابع، وتتغير حسب المهنة: صيدلية ترتّب بتاريخ الانتهاء، وموزّع بالجولة.
ما لا يجوز أن يرتّب أبداً: الهامش، إلا إن طلبه المسيّر كتابةً وتحمّله؛ ولا يجوز لأي قاعدة أن تقدّم منتجاً لا يحتوي كلمات الطلب. وأجزاء الشكل توضيحية؛ وما ليس توضيحياً أن لكل قاعدة وزناً مكتوباً، وأن مجموعة الطلبات تقيس أثر كل تغيير في الوزن، وأن التاجر الذي يكتب مرجعاً دقيقاً أو باركوداً يحصل على ذلك المنتج وحده، أولاً، قبل أي بحث نصي.
ستة طلبات حقيقية، وما يجب على المحرك فعله
ستة طلبات نلتقطها من سجلات بحث التطبيقات التي نبنيها، وما يجب على المحرك فعله لكل منها.
الدارجة بأحرف لاتينية هي السبب الأول لصفر نتيجة في كتالوج غذائي: «zit» و«smid» و«sokar» بمتغيراتها؛ لا يجدها إلا مرادفات مكتوبة يدوياً، والقائمة تعيش مع السجل. العربية بأداة التعريف أو بدونها، بالنقاط والحركات أو بدونها: أداة التعريف تُزال، والأشكال تُوحَّد، والعلامات تُتجاهل، والنتيجة نفسها بالكتابتين؛ هذا تطبيع الخطوة الثانية. الخطأ الإملائي: خطأ واحد مسموح من خمسة أحرف واثنان من تسعة والحرف الأول يُحسب مضاعفاً، والنتيجة الدقيقة أولاً دائماً؛ والكلمات القصيرة، «lait» و«thé»، لا تحمّل لها وتغطيها المرادفات.
المرجع أو الباركود: مطابقة دقيقة قبل أي بحث نصي، نتيجة واحدة، أولاً؛ هذا طلب المندوب الذي يمسح، الموصوف في دليل تطبيق الميدان. الكلمة العامة: «huile» تعطي عشرات النتائج، والترتيب هو الذي يعمل: التوفر، المطلوب سابقاً، السعر، مع واجهات العلامة والتعبئة للتضييق. لا شيء يطابق: صفر نتيجة مسجَّل بالزبون والوقت، منتجات قريبة مقترَحة بدل صفحة فارغة، والقائمة تُراجَع كل أسبوع؛ هذا السطر الذي يحسّن كل الباقي.
أربع طرق لبناء البحث
أربع مقاربات، والاختيار يتوقف على حجم الكتالوج والاستعمال ومن سيشغّل الخدمة، لا على الموضة.
فهرس القاعدة، النص الكامل والثلاثيات، يكفي حتى بضع عشرات الآلاف من المنتجات لمكتب خلفي أو بحث داخلي: إزالة الحركات بقاموس مرشّح، الأخطاء بتشابه الثلاثيات بعتبة قابلة للضبط، المرادفات بجدول؛ لا شيء زيادة يُستضاف أو يُراقَب، لكن بلا تقطيع أداة التعريف العربية ولا بحث أثناء الكتابة على كتالوج كبير. المحرك المخصص المفتوح المستضاف ذاتياً خيارنا المعتاد لكتالوج الزبائن أو بوابة B2B أو سوق إلكترونية: أخطاء مسموحة افتراضياً، قواعد ترتيب مرتَّبة، عربية مقطَّعة، مرادفات أصلية، بحث أثناء الكتابة في بضع عشرات الميلي ثانية على فهرس بهذا الحجم، يُقاس؛ وهو خدمة إضافية تُستضاف وتُنسخ وتُحدَّث وفق دليل الاستضافة.
المحرك نفسه كخدمة مُدارة يجنّب تشغيله بأنفسكم، بثمن اشتراك بالعملة الأجنبية يُدفع من الجزائر، الموصوف في دليل دفع تكاليف السحابة، وبيانات كتالوج مستضافة عند الناشر تُقرَّر بالعقد. البحث الدلالي بالمتجهات يفهم «زيت للقلي» بلا مرادف ويجيب عن أسئلة بلغة طبيعية على الوثائق؛ لا يضمن المرجع الدقيق ويُجمع مع ترتيب النص بدل أن يحل محله؛ وهو الوظيفة الموصوفة في دليل الذكاء الاصطناعي في التطبيق، وله تكلفته لكل مستند ولكل طلب. ولا أحد من الأربعة يعرف «zit»: المرادفات تبقى لتُكتب أياً كان المحرك.
«المنتج النافد ينزل في القائمة ولا يختفي، وإلا ظن التاجر أنه لم يعد موجوداً.»
رأيناه في مكان آخر: Meilisearch وPostgreSQL، وما ينتقل
مصدران يقولان الجوهر. تقول وثائق Meilisearch إن تحمّل الأخطاء مفعَّل افتراضياً بعتبتي خمسة وتسعة أحرف، وإن قواعد الترتيب تُطبَّق بترتيب مكتوب، وإن العربية تُقطَّع وتُطبَّع؛ وما ينتقل هو أن الأخطاء والعربية الفصحى تُضبط بالإعداد، وأن كل الباقي، الدارجة اللاتينية والوحدات وقواعد العمل، يُبنى. وتقول وثائق PostgreSQL إن قاموساً مرشّحاً يزيل الحركات، وإن المجذّرات تُوضع في نهاية السلسلة، وإن الثلاثيات تقيس تشابهاً بعتبة 0,3؛ وما ينتقل هو أن مكتباً خلفياً لا يحتاج محركاً إضافياً.
وما لا تقوله هذه المصادر: أي كلمات يكتب زبائنكم، وأي حصة من صفر نتيجة لديكم اليوم، وأي قواعد عمل يريد مسيّركم أن ترتّب؛ والأسبوع الأول من المشروع يجيب، بسجل التطبيق القائم إن وُجد، وبالمندوبين إن لم يوجد.
قواعد البحث الذي يجد
ست قواعد تُكتب في الأسبوع الأول وتُعاد قراءتها مع كل إضافة مرادفات. الطلبات الحقيقية قبل المحرك: ما يكتبه الزبائن، المجموع من المندوبين والسجل، يقرر الحقول والمرادفات ومجموعة الطلبات. التطبيع نفسه في الفهرس والطلب، عربياً ولاتينياً. المرادفات لكم، في قاعدتكم، مُصدَرة، لا في لوحة ناشر. قواعد العمل ترتّب ولا ترشّح: المنتج النافد ينزل ولا يختفي. المرجع الدقيق يفوز دائماً. صفر نتيجة هو الرقم الذي يُقرأ كل أسبوع مع قائمة المصطلحات، وكل مصطلح يُضاف إلى المرادفات يُعاد على مجموعة الطلبات.
قاعدة سابعة تخص عرض السعر: «البحث» ليس متطلباً بل جملة؛ المتطلب يُكتب «فهرس على حقول الاسم بالفرنسية والاسم بالعربية والمرادفات والمرجع والباركود؛ تطبيع عربي ولاتيني؛ مائتا مرادف تُكتب مع المسيّر؛ خطأ واحد مسموح من خمسة أحرف؛ ترتيب نصي ثم التوفر وسعر الزبون والمطلوب سابقاً؛ مجموعة مائتي طلب بدرجة تُقاس عند القبول؛ سجل صفر نتيجة؛ بحث أثناء الكتابة تحت خمسين ميلي ثانية مقاساً»، ويُتحقَّق منه كما يوصي دليل دفتر الشروط. وعرض السعر الذي يسعّر «حقل بحث» سعّر `LIKE`.
ستة تطبيقات، وما يجب أن يجده بحثها
ستة تطبيقات نبنيها كثيراً، ولكل منها ما يجب أن يجده البحث أولاً، يُقرَّر في الأسبوع الأول.
- بوابة الطلبيات B2B، الموصوفة في الدليل المخصص. الدارجة اللاتينية والعربية نحو الكتالوج، السعر لهذا الزبون في الترتيب، الباركود الدقيق؛ صفر نتيجة يُقرأ كل أسبوع مع المندوبين.
- السوق الإلكترونية، الموصوفة في الدليل المخصص. آلاف البائعين، أسماء منتجات مكتوبة بألف طريقة؛ تطبيع قوي، مرادفات لكل فئة، واجهات، والتوفر لكل بائع في الترتيب.
- تطبيق الميدان للمندوبين، الموصوف في الدليل المخصص. مسح الباركود أولاً، ثم بحث دون اتصال على الفهرس المحلي الموصوف في دليل العمل دون اتصال؛ منتجات الجولة أولاً.
- تاجر جملة الأدوية، الموصوف في دليل سلسلة التبريد. الاسم العلمي والاسم التجاري مرادفان أحدهما للآخر، الجرعة والشكل حقلان، تاريخ الانتهاء في الترتيب.
- فضاء مالك الشقة، الموصوف في الدليل المخصص. بحث في الوصولات ومحاضر الحالة والأشغال بالتاريخ والمستأجر والمبلغ؛ فهرس القاعدة يكفي.
- لوحة قيادة المسيّر، الموصوفة في الدليل المخصص. بحث عن زبون أو طلبية أو فاتورة بالرقم أو الاسم أو الهاتف، مع أخطاء؛ ثلاثيات القاعدة، بلا محرك إضافي.
تقويم 2027
التقويم تقويم بحث كامل في ستة أسابيع، الأول بلا مسّ بالمحرك وواحد للقبول مع تجار حقيقيين.
الأسبوع 0 إلى 1 يجمع الطلبات الحقيقية ويكتب المرادفات: الكلمات التي يكتبها الزبائن فعلاً، تُلتقط من المندوبين ومن هاتف المسيّر ومن سجل التطبيق القائم إن وُجد؛ مائتا مرادف مكتوب وموقَّع. الأسبوع 1 إلى 2 يثبّت الحقول والتطبيع، عربياً ولاتينياً، والوحدات، ومجموعة مائتي طلب بالمنتج المنتظر. الأسبوع 2 إلى 3 يثبّت المحرك أو فهرس القاعدة، ويحمّل المستندات، ويوصل إعادة الفهرسة مع كل تعديل، ويقيس البحث أثناء الكتابة. الأسبوع 3 إلى 4 يكتب قواعد العمل والواجهات مع المسيّر، وكل وزن يُقاس على مجموعة الطلبات.
الأسبوع 4 إلى 5 هو القبول: الدرجة على مجموعة الطلبات، صفر نتيجة معدود، وعشرة تجار حقيقيين يبحثون أمامنا، لأن الفريق يكتب الاسم الصحيح دائماً. الأسبوع 5 إلى 6 هو التجريب: السجل يُقرأ كل أسبوع، مرادفات تُضاف، الدرجة تُعاد، وحصة صفر نتيجة التي تنخفض أسبوعاً بعد أسبوع هي الرقم الذي يقول إن البحث حي. وكل دفعة تُعرض وتُقبل كما يصف دليل التسليم.
ما يُفشل البحث
عمليات البحث التي نستلمها فشلت دائماً تقريباً لأحد هذه الأسباب.
- حقل `LIKE`. دقيق، بطيء على كتالوج كبير، وصامت: لا أحد يعرف ما كتبه الزبائن بلا نتيجة.
- لا مرادفات. المحرك يتحمل الأخطاء، لكن «zit» ليست خطأ؛ بل كلمة لم يكتبها أحد.
- عربية غير مطبَّعة. «الزيت» و«زيت» كلمتان مختلفتان؛ الزبون يكتب إحداهما والمنتج يحمل الأخرى.
- النافد مرشَّح. يختفي المنتج؛ يظن التاجر أنه لم يعد موجوداً ويطلب من مكان آخر.
- القبول على الأسماء الدقيقة. الفريق يبحث «Huile de tournesol 5 L» فيعمل كل شيء؛ والتاجر يبحث «zit» فلا يعمل شيء.
- الفهرس المتأخر. تغيّر السعر هذا الصباح؛ والبحث يعرض سعر الأمس.
- لا سجل. يفشل البحث بالطريقة نفسها للكلمة نفسها شهوراً، ولا أحد يعرف.
أسئلة شائعة
الأسئلة التي نتلقاها من مؤسسين مقيمين في فرنسا ومسيّرين في الجزائر وفرق تقارن عروض الأسعار.
- لماذا لا يجد زبائني المنتج وهو موجود؟
- لأنهم لا يكتبون الاسم الذي يحمله المنتج: «zit» للزيت، «الزيت» بأداة التعريف، «huille» بخطأ، أو الوحدة ملتصقة بالرقم. حقل يبحث عن الكلمة الدقيقة لا يجد شيئاً؛ وفهرس بتطبيع ومرادفات مكتوبة يدوياً وتحمّل للأخطاء يجد الثلاثة الأولى، وسجل صفر نتيجة يقول أيها ما زال ناقصاً.
- هل يفهم البحث الدارجة بأحرف لاتينية؟
- لا محرك يعرفها: «zit» و«smid» و«sokar» ومتغيراتها مرادفات تُكتب يدوياً مع المسيّر والمندوبين في الأسبوع الأول، مائتا سطر لكتالوج غذائي، ثم تُستكمل كل أسبوع من الطلبات بلا نتيجة. وتُخزَّن المرادفات في قاعدتكم لا عند ناشر.
- والعربية بأداة التعريف أو بدونها، بالحركات أو بدونها؟
- التطبيع يتكفل بذلك: أداة التعريف «ال» تُزال، وأشكال الألف والتاء المربوطة تُوحَّد، والحركات تُتجاهل، والأرقام العربية واللاتينية تُواءم، بالطريقة نفسها على الفهرس والطلب. محرك مخصص يقوم بجزء من هذا العمل افتراضياً؛ والباقي نضيفه قبل الفهرسة، ومجموعة الطلبات تتحقق منه.
- كم خطأً يتحمل البحث؟
- خطأ واحد من خمسة أحرف، واثنان من تسعة، والخطأ في الحرف الأول يُحسب مضاعفاً: هذه الإعدادات الافتراضية لمحرك شائع، وتُغيَّر. والكلمات القصيرة، «lait» و«thé»، لا تحمّل لها وتغطيها المرادفات؛ والنتيجة الدقيقة تبقى أولاً دائماً.
- هل نحتاج محرك بحث فوق قاعدة البيانات؟
- ليس دائماً. لمكتب خلفي أو بحث داخلي حتى بضع عشرات الآلاف من المراجع يكفي فهرس النص الكامل والثلاثيات في القاعدة بلا خدمة إضافية. ولكتالوج يُستشار من الهاتف أو بوابة B2B أو سوق إلكترونية، يجلب محرك مخصص مفتوح مستضاف ذاتياً البحث أثناء الكتابة والأخطاء والعربية المقطَّعة وقواعد الترتيب؛ وهو خدمة إضافية تُستضاف، وهو لكم.
- كم من الوقت لبناء البحث؟
- ستة أسابيع لبحث كامل: واحد للطلبات الحقيقية والمرادفات بلا مسّ بالمحرك، واحد للحقول والتطبيع ومجموعة الطلبات، واحد للفهرس، واحد لقواعد العمل، واحد للقبول مع عشرة تجار حقيقيين، واحد للتجريب مع السجل. وكل دفعة تُعرض وتُقبل على مجموعة الطلبات.