Techsy
اتصل بنا
ابدأ
العودة للمدونة
comparisons

البحث الهجين: BM25 مقابل Vector (ولماذا تحتاج كليهما)

بقلم Mert Batur
Jul 30, 2026
14 قراءة
جدول المحتويات
البحث الهجين: BM25 مقابل Vector (ولماذا تحتاج كليهما)

البحث الهجين: BM25 مقابل Vector (ولماذا تحتاج كليهما)

يكتب موظف دعم فني "SKU-4471" في روبوت الدردشة القائم على RAG. تظهر أربع نتائج. جميعها خاطئة بثقة تامة. لا يوجد سبب يدفع نموذج التضمين العام إلى وضع ذلك النص الحرفي قرب نفسه في الفضاء المتجهي. هذا النمط من الفشل وحده هو سبب وجود البحث الهجين، وهو السبب الذي يجعل الفرق تطرح سؤالاً محدداً باستمرار: كيف تجمع فعلياً بين BM25 والبحث المتجهي دون أن تقضي وقتك في ضبط معامل تهيئة لا ينتهي؟

إذا كنت تقيّم أدوات RAG بشكل أوسع، يغطي دليلنا لأفضل أدوات RAG المنظومة المحيطة.

أبرز النقاط

  • BM25 يعثر على التطابقات الحرفية للكلمات المفتاحية (أكواد SKU، رموز الأخطاء)؛ والبحث المتجهي يعثر على النصوص المتشابهة مفاهيمياً، لا النصوص المطابقة حرفياً.
  • البحث الهجين يجمع بينهما، عادةً عبر Reciprocal Rank Fusion (RRF)، ويتفوق على أيٍّ منهما بمفرده في أحمال الاستعلامات المختلطة.
  • على معيار WANDS، يسجل RRF العادي 0.7068 NDCG (مقابل 0.6983 لـ BM25)؛ والضبط الدقيق يرفعه إلى 0.7497، أي تحسّن بنسبة 7.4%.
  • يمكن لـ Postgres/pgvector تشغيل البحث الهجين أصلياً عبر ts_rank + pgvector، دون الحاجة إلى قاعدة بيانات متجهية مخصصة.

ما هو البحث الهجين؟ (BM25 + Vector، معاً)

البحث الهجين يشغّل BM25 والبحث المتجهي كمرورَي استرجاع منفصلَين على الاستعلام نفسه، ثم يدمج قائمتَي النتائج المرتّبتَين في مخرج واحد باستخدام خوارزمية دمج، أكثرها شيوعاً Reciprocal Rank Fusion. ليس طريقة استرجاع ثالثة؛ بل هو طبقة تنسيق فوق طريقتَين قائمتَين.

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

BM25 مقابل Vector مقابل الهجين: مقارنة سريعة

البُعدBM25 (متفرق/معجمي)البحث المتجهي (كثيف/دلالي)الهجين
الأفضل فيالمصطلحات الحرفية، الرموز النادرة، المعرّفاتإعادة الصياغة، المرادفات، المفاهيمكلا نوعَي الاستعلامات
يفشل فيالأسئلة المعاد صياغتها، الترادفأكواد SKU، رموز الأخطاء، الاختصاراتالمجموعات النصية التي تفتقر لكلا النمطَين
يتعامل مع التطابقات الحرفية (SKU، معرّفات، رموز أخطاء)نعملانعم
يتعامل مع إعادة الصياغة والمرادفاتلانعمنعم
يتطلب نموذج تضمينلانعمنعم
يتطلب ضبطاًمعاملَا k1 و bالتقطيع، اختيار النموذجطريقة الدمج (RRF/alpha)
ملف زمن الاستجابة النموذجيأقل من مللي ثانية إلى مللي ثانية منخفضةمللي ثانية منخفضة إلى متوسطة (يعتمد على ANN)مجموعهما، بالإضافة إلى عبء الدمج
أمثلة الدعم الأصليElasticsearch، Postgres ts_rankQdrant، Pinecone، pgvectorWeaviate، Qdrant، Elasticsearch

على معيار WANDS للتجارة الإلكترونية، سجل BM25 وحده 0.6983 NDCG وسجل البحث المتجهي وحده 0.6953 (شبه تعادل). دمج RRF العادي، دون أي ضبط خاص بالمجموعة النصية، وصل إلى 0.7068، أي تحسّن متواضع بنسبة 1.2% على BM25 وحده. اختبار Doug Turnbull للمعيار شمل أيضاً نسخة مضبوطة تضيف تعزيز اسم المنتج فوق RRF، وتلك النسخة وصلت إلى 0.7497، أي تحسّن بنسبة 7.4%. من الإنصاف توضيح أي رقم تستشهد به: RRF وحده يمنحك أفضلية صغيرة وحقيقية مباشرة بعد التثبيت؛ أما رقم 7.4% الأكبر فتطلّب ضبطاً إضافياً خاصاً بالمجال تتخطاه معظم الفرق في اليوم الأول. لا BM25 ولا البحث المتجهي يهيمن بمفرده؛ كلاهما يغطي أنماط فشل مختلفة، ودمجهما يسد كلتا الفجوتَين في آن واحد.

آلية BM25: كيف يسجّل البحث بالكلمات المفتاحية الصلة فعلياً

BM25 يسجّل المستندات بناءً على تكرار المصطلح، موزوناً بمدى ندرة ذلك المصطلح عبر المجموعة النصية بأكملها، ثم مطبَّعاً حسب طول المستند. وضع Robertson و Zaragoza هذه الصياغة الرسمية في ورقتهما البحثية عام 2009 "The Probabilistic Relevance Framework: BM25 and Beyond". هو تحسين لـ TF-IDF، لا بديل عنه.

معاملان يتحكمان في معظم سلوك BM25. k1 (عادةً 1.2-2.0) يتحكم في تشبع تكرار المصطلح: يحدّ من مقدار تعزيز تكرار كلمة للدرجة، حتى لا يتفوق مستند يذكر "فاتورة" 40 مرة تلقائياً على مستند يذكرها 4 مرات في مقطع أكثر إحكاماً وصلةً. b (الافتراضي 0.75) يتحكم في تطبيع طول المستند: يقرر مدى قسوة معاقبة BM25 للمستندات الطويلة لاحتوائها طبيعياً على تطابقات مصطلحات أكثر.

الخطأ في ضبط b خطأ شائع وحقيقي. المستندات التقنية القصيرة (سجلات الأخطاء، عناوين المنتجات) تحتاج قيمة b أقل لأن تباين الطول صغير؛ والمحتوى الطويل (صفحات التوثيق، المقالات) يحتاج عادةً قيمة b أقرب إلى الافتراضي. نقطة الضعف الجوهرية في BM25 هي عدم تطابق المفردات: إذا سأل المستخدم "كيف أسترد أموالي" والمستند لا يذكر إلا "سياسة الاسترداد"، فلن يجد BM25 أي رموز مشتركة ولن يعيد شيئاً مفيداً.

آلية البحث المتجهي الكثيف (وأين ينكسر)

البحث المتجهي يحوّل النص إلى تضمينات ذات أبعاد ثابتة باستخدام نموذج، ثم يجد المتجهات القريبة عبر تشابه جيب التمام أو الجداء النقطي، عادةً بتسريع من فهرس الجار الأقرب التقريبي. HNSW هي الخوارزمية المهيمنة عبر Weaviate و Qdrant و Milvus، وتضحي بجزء صغير من الاستدعاء مقابل مكاسب سرعة كبيرة على النطاق الواسع.

هذا ما يحل مشكلة عدم تطابق المفردات في BM25: "أسترد أموالي" و"سياسة الاسترداد" تقعان قريباً من بعضهما في فضاء التضمين حتى مع صفر رموز مشتركة، لأن النموذج يلتقط المعنى لا الشكل السطحي. اختيار النموذج المناسب مهم جداً هنا. راجع دليلنا حول اختيار نموذج التضمين المناسب، وتحليلنا لـ كيف قارنّا بين تضمينات Voyage و OpenAI و Cohere إذا كنت تزن الخيارات.

لكن الاسترجاع الكثيف له نقطة عمياء خاصة به، وهي الصورة المعكوسة لنقطة ضعف BM25. حين نبني أنظمة RAG للعملاء، فإن فشل التطابق الحرفي الذي نواجهه أكثر من غيره ليس حالة نادرة. إنه موظف دعم يسأل عن رقم طلب أو كود SKU محدد، والفهرس المتجهي يعيد بثقة شيئاً مشابهاً دلالياً لكنه خاطئ. لا يوجد سبب يدفع نموذج التضمين العام إلى وضع "SKU-4471" أو "ERR_CONN_RST" قريباً من نفسه في الفضاء المتجهي مقارنةً برمز ذي صلة لكنه خاطئ، لأن نصوصاً كهذه نادراً ما تظهر كمفاهيم مستقلة ومعزولة في بيانات التدريب. توثّق BigData Boutique هذا النمط من الفشل تحديداً بأمثلة SKU ورموز أخطاء خاصة بها. إنها ظاهرة راسخة ومُثبتة بشكل مستقل عبر عمليات نشر RAG، وليست حالة شاذة لمرة واحدة.

كيف تجمع بين BM25 والبحث المتجهي: RRF مقابل الدمج الموزون بـ Alpha

هناك طريقتان حقيقيتان لدمج نتائج BM25 والنتائج المتجهية، ولا يكاد أحد يكتب عن البحث الهجين ويقارن بينهما بوضوح. Reciprocal Rank Fusion (RRF)، من ورقة Cormack و Clarke و Buettcher في SIGIR عام 2009، تعمل على المراتب: score = sum(1 / (k + rank_i)) عبر كل قائمة نتائج، مع ضبط k عادةً على 60. لأنها تهتم بالموقع فقط، لا بالدرجة الخام، تتعامل RRF مع عدم تطابق المقاييس بين درجات BM25 غير المحدودة ونطاق تشابه جيب التمام من 0 إلى 1 دون أي مشكلة، ولا تحتاج إلى ضبط خاص بكل مجموعة نصية.

الدمج الموزون بـ Alpha (المحدّب) يعمل بشكل مختلف: final = alpha * dense_score + (1 - alpha) * sparse_score، ويعمل على الدرجات المطبَّعة لا على المراتب. يمكنه أن يعكس حجم الثقة بشكل أفضل (إصابة متجهية بتشابه 0.95 تبدو أقوى فعلاً من إصابة بتشابه 0.61)، لكنه يتطلب ضبط alpha لكل مجموعة نصية، وذلك الضبط ينكسر بصمت حين تتغير توزيعات درجاتك (نموذج تضمين جديد، إعادة فهرسة المجموعة، مزيج استعلامات مختلف).

عملياً، الاختيار يتوقف على مدى ثقتك في معايرة درجاتك. عند تشغيل BM25 العادي مقابل نموذج تضمين واحد مستقر، يمكن للوزن بـ Alpha أن يحقق ترتيباً أفضل قليلاً لأنه يستخدم الفجوة الفعلية بين الدرجات، لا الموقع فحسب. لكن تلك المعايرة تنحرف أكثر مما يتوقع الناس. استبدل نسخة نموذج التضمين، أو أعد تقطيع مستنداتك، أو أضف مرحلة إعادة ترتيب في الأعلى، وسيتغير توزيع درجاتك الكثيفة. لا أحد يتلقى تنبيهاً حين تتوقف alpha=0.6 عن كونها القيمة الصحيحة؛ الترتيب يسوء قليلاً وبهدوء، ومن السهل تفويت ذلك ما لم تكن تشغّل تقييمات الاسترجاع بانتظام. RRF تتجاوز هذا تماماً لأنها لا تنظر أبداً إلى الدرجات الخام، بل إلى موقع المرتبة فقط، لذا إعادة الفهرسة أو استبدال النموذج لا يمكن أن يكسرها بصمت كما يمكن أن يكسر الوزن بـ Alpha.

RRF لا تحتاج إلى ضبط لكل مجموعة نصية؛ الوزن بـ Alpha يحتاج إلى متابعة مستمرة كلما تغيرت بياناتك.

المحركات تختلف في الافتراضيات. Weaviate تتيح كلاً من RRF ومعامل alpha تضبطه صراحةً. Elasticsearch تشحن RRF أصلياً عبر واجهة retriever API (تأكد من إصدار التوزيع الدقيق في بيئتك؛ هذه الميزة وصلت في خط 8.x). Qdrant تدعم RRF أصلياً عبر Query API. ميزة Pinecone الهجينة تعتمد عادةً على التركيب المحدّب الموزون بـ Alpha بدلاً من إتاحة RRF مباشرةً. إذا لم تكن متأكداً أيهما تختار، ابدأ بـ RRF. إنها الخيار الأقل صيانةً.

RRF من الصفر: مثال Python محايد تجاه المزوّدين

كل نموذج كود RRF وجدناه في الأدلة المنافسة مقفل على SDK مزوّد واحد: عميل Weaviate، عميل Qdrant، عميل Pinecone. إليك نسخة خالية من أي إطار عمل يمكنك إسقاطها في أي مكدس تقني، مع k=60 كالقيمة الافتراضية القياسية:

python
def reciprocal_rank_fusion(result_lists, k=60):
    """
    result_lists: list of ranked lists, each a list of document IDs
                  ordered from most to least relevant.
    k: RRF constant (60 is the standard default from Cormack et al., 2009).
    Returns: list of (doc_id, fused_score) sorted descending by score.
    """
    scores = {}
    for result_list in result_lists:
        for rank, doc_id in enumerate(result_list, start=1):
            scores[doc_id] = scores.get(doc_id, 0.0) + 1.0 / (k + rank)
    return sorted(scores.items(), key=lambda item: item[1], reverse=True)

# Example usage:
bm25_hits = ["doc_9", "doc_2", "doc_14", "doc_1"]
vector_hits = ["doc_2", "doc_1", "doc_9", "doc_30"]

fused = reciprocal_rank_fusion([bm25_hits, vector_hits])
for doc_id, score in fused:
    print(f"{doc_id}: {score:.4f}")

هذه هي الخوارزمية بأكملها. لا SDK، لا قفل على مزوّد، وتعمل سواء جاءت قائمتاك المرتّبتان من Elasticsearch وفهرس Faiss، أو من Postgres ts_rank و pgvector. إذا كنت تشغّل النماذج بنفسك بدلاً من استدعاء واجهة برمجية، راجع تشغيل نماذج التضمين محلياً مع Ollama.

Postgres + pgvector: بحث هجين دون قاعدة بيانات متجهية مخصصة

لا تحتاج إلى قاعدة بيانات متجهية مخصصة لتشغيل البحث الهجين. وفقاً لـ معيار pg_textsearch/pgvector الذي أجراه المطوّر Pedro Alonso (Postgres 17، pg_textsearch 1.3.0، pgvector 0.8.2، تضمينات nomic-embed-text، مجموعة بيانات BEIR SciFact)، سجلت نسخة Postgres واحدة تشغّل ts_rank الأصلي 0.07 NDCG@10 فقط، متأخرةً كثيراً عن BM25 الذي سجل 0.69، و pgvector الذي سجل 0.66، والهجين الذي سجل 0.70، كل ذلك في نسخة واحدة، مع وصول RRF الهجين إلى وسيط زمن استجابة حول 11.5 مللي ثانية.

رقم 0.07 هو الدليل الكاشف: ts_rank المدمج في Postgres هو مصنّف كثافة تغطية، ليس BM25 حقيقياً. إذا كنت تريد تسجيل BM25 حقيقياً في Postgres، فأنت بحاجة إلى امتداد. pg_textsearch و VectorChord و ParadeDB جميعها تضيف ترتيباً حقيقياً بأسلوب BM25 لا يوفره ts_rank الأصلي. اقرن أحدها مع pgvector للتشابه الكثيف، وادمج القائمتَين المرتّبتَين بدالة RRF أعلاه، وستحصل على بحث هجين في نسخة Postgres واحدة دون أي بنية تحتية منفصلة لتشغيلها.

إليك تقريباً كيف يبدو ذلك الاقتران في استعلام واحد، يجمع بين مرتبة معجمية من امتداد يدعم BM25 ومسافة متجهية من pgvector:

sql
WITH lexical AS (
  SELECT id, ts_rank_cd(body_tsv, query) AS rank
  FROM documents, plainto_tsquery('english', 'refund policy') query
  WHERE body_tsv @@ query
  ORDER BY rank DESC LIMIT 50
),
semantic AS (
  SELECT id, embedding <=> '[0.012, -0.045, ...]' AS distance
  FROM documents
  ORDER BY distance LIMIT 50
)
SELECT * FROM lexical
FULL OUTER JOIN semantic USING (id);

أدخل كلتا مجموعتَي النتائج في دالة RRF أعلاه وستحصل على بحث هجين في نسخة Postgres واحدة. الحدّ الصادق: هذا يصمد جيداً حتى ملايين الصفوف المنخفضة، لكن Postgres لم يُبنَ كمحرك استرجاع مخصص. أنت تتولى ضبط فهارسك بنفسك، و ts_rank_cd العادي لا يزال ليس BM25 حقيقياً دون امتداد، ولا تحصل على إعادة الترتيب المدمجة أو دعم المتجهات المتعددة الذي تشحنه Weaviate أو Milvus أصلياً. إذا كانت مجموعتك النصية صغيرة إلى متوسطة الحجم وكنت تشغّل Postgres أصلاً، فهذا يوفر لك قطعة بنية تحتية ثانية بالكامل. بعد عشرات ملايين المستندات، أو إذا كنت تحتاج إلى إعادة ترتيب متقدمة، فإن المحرك المخصص يستحق تكلفته.

إذا كنت تزن Qdrant أو Chroma أو pgvector لمكدسك بشكل أوسع، فهذا قرار منفصل عن طريقة الدمج نفسها. راجع مقارنتنا بين Qdrant و Chroma و pgvector للمفاضلات.

أي قواعد البيانات المتجهية تدعم البحث الهجين أصلياً؟

معظم قواعد البيانات المتجهية الحديثة تشحن الآن البحث الهجين مباشرةً، لكن طريقة الدمج الافتراضية تختلف بشكل ملموس.

المحركدعم هجين أصليطريقة الدمجملاحظات
WeaviateنعمRRF أو موزون بـ Alphaتتيح كليهما، اختيارك لكل استعلام
QdrantنعمRRFعبر Query API
ElasticsearchنعمRRFعبر واجهة retriever API
OpenSearchنعمتطبيع + مجموع موزونتستخدم "معالجات التطبيع"
Vespaنعمدمج أصليمن أوائل المحركات التي دعمت هذا
Milvusنعممتعدد المتجهات + BM25 متفرقهجين عبر واجهة البحث المدمج
pgvector + Postgresنعم (مع امتداد)RRF يدوي (انظر أعلاه)يحتاج امتداد ts_rank/BM25 لتسجيل معجمي حقيقي

تحقق من إصدار التوزيع الدقيق قبل أن تلتزم. الميزات الهجينة تصل بسرعة عبر هذه المحركات خلال 2026، وأشكال واجهات API تتغير من إصدار إلى إصدار. لقرار شراء أوسع يتجاوز ميكانيكا الدمج، راجع دليلنا الشامل لأفضل قواعد البيانات المتجهية.

هل يستحق البحث الهجين هذه التعقيد؟

البحث الهجين صحيح معمارياً حين تحتوي مجموعتك النصية على كلا نمطَي التطابق الحرفي (أكواد SKU، معرّفات، مصطلحات نادرة) والاستعلامات المفاهيمية المعاد صياغتها. إذا كانت مجموعتك النصية تفتقر لكليهما (محتوى سردي بحت، لا معرّفات يبحث عنها أحد بنص حرفي)، فقد تضيف تعقيد الدمج مقابل تحسّن بالكاد تلاحظه.

فكّر في ما يعنيه "سردي فقط" فعلياً: أرشيف مدونة شركة، ويكي هندسي داخلي مليء بإجراءات تشغيلية نثرية، موقع توثيق لا يبحث فيه أحد برقم منتج أو رقم تذكرة. في تلك المجموعات النصية، البحث المتجهي وحده عادةً يمنحك معظم القيمة، وخطوة الدمج تضيف مجرد مرور استرجاع ثانٍ ومعامل تهيئة يتولاه شخص ما الآن، مقابل تحسّن يُقرَّب إلى الضوضاء. قارن ذلك بنظام تذاكر دعم أو كتالوج تجارة إلكترونية، حيث تظهر أكواد SKU وأرقام الطلبات ورموز الطرازات في استعلامات المستخدمين الحقيقية باستمرار. هذا هو الاختبار الفعلي: اسحب عشرة استعلامات حقيقية من سجلاتك وعد كم منها يحتوي على معرّف حرفي لن يضعه نموذج تضمين قائم على إعادة الصياغة في مكانه الصحيح أبداً. صفر، تخطَّ الهجين. أكثر من واحد أو اثنين، ابنِه.

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

التكلفة حقيقية لكنها محدودة: مرور استرجاع ثانٍ، وخطوة دمج، ومعامل تهيئة يتولاه شخص ما الآن. نتعمّد عدم ذكر رقم زمن استجابة هنا، لأن الأرقام المتداولة تأتي من إعدادات غير مسماة على عتاد غير مسمى، وإعدادك سيختلف. قِسه على مجموعتك النصية الخاصة قبل أن تقرر. خيطان على Hacker News يلتقطان التوتر الحقيقي بين الممارسَين هنا: "Hybrid Search Is Just the Beginning: Optimizing the R in RAG" و "Better RAG Results with Reciprocal Rank Fusion and Hybrid Search". كلا الخيطَين يدفعان ضد اعتماد الهجين كأفضل ممارسة تقليدية دون التحقق أولاً مما إذا كانت مجموعتك النصية تحتوي أصلاً على أنماط الاستعلامات التي صُمّم لحلها. قبل أن تبنيه، من المفيد فهم كيف تقيس جودة الاسترجاع فعلياً: أرقام NDCG و recall@k لا تعني شيئاً إلا مقابل مجموعتك النصية الخاصة، لا مقابل مجموعة بيانات معيارية.

رأينا: افتراضياً اختر الهجين لأي نظام RAG يستقبل استعلامات دعم أو تجارة إلكترونية أو تذاكر تواجه المستخدم. تلك الأحمال تخلط دائماً تقريباً بين المعرّفات واللغة الطبيعية. تخطَّه للمجموعات النصية السردية فقط (مستندات طويلة، ويكيات سردية) حتى تقيس فجوة حقيقية يتركها الاسترجاع أحادي الطريقة مفتوحةً.

عن الكاتب

Mert Batur هو المؤسس المشارك لـ Techsy.io، حيث يشحن الفريق وكلاء ذكاء اصطناعي وأنظمة أتمتة وخطوط أنابيب صوتية/SDR لعملاء B2B. يكتب عن مكدس أدوات LLM الذي يستخدمه فريق Techsy فعلياً في الإنتاج. تواصل على LinkedIn.

الأسئلة الشائعة

ما هو البحث الهجين في RAG؟

البحث الهجين يشغّل استرجاع BM25 (الكلمات المفتاحية) والمتجهي (الدلالي) كمرورَين منفصلَين على الاستعلام نفسه، ثم يدمج القائمتَين المرتّبتَين بخوارزمية دمج، عادةً Reciprocal Rank Fusion. يلتقط كلاً من استعلامات التطابق الحرفي والاستعلامات المفاهيمية المعاد صياغتها، وهذا ما لا تستطيع أي من الطريقتَين التعامل معه بمفردها.

هل BM25 هو نفسه البحث المتجهي؟

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

كيف تجمع بين BM25 والبحث المتجهي؟

شغّل كلتا طريقتَي الاسترجاع بشكل مستقل على الاستعلام نفسه، ثم ادمج قائمتَي النتائج المرتّبتَين، أكثر الطرق شيوعاً Reciprocal Rank Fusion، التي تجمع 1 / (k + rank) عبر كل قائمة. التركيب الموزون للدرجات بـ Alpha هو البديل، لكنه يحتاج إلى ضبط خاص بكل مجموعة نصية لا تحتاجه RRF.

ما هو Reciprocal Rank Fusion (RRF)؟

RRF خوارزمية دمج من ورقة Cormack و Clarke و Buettcher في SIGIR عام 2009، تجمع عدة قوائم مرتّبة بحساب مجموع 1 / (k + rank) لكل مستند، مع ضبط k عادةً على 60. تعمل على موقع المرتبة، لا على الدرجات الخام، لذا تبقى مستقرة عبر عدم تطابق المقاييس بين طرق الاسترجاع.

ما الفرق بين RRF والدمج الموزون بـ Alpha؟

RRF تدمج المراتب ولا تحتاج إلى ضبط خاص بكل مجموعة نصية. الدمج الموزون بـ Alpha يدمج الدرجات المطبَّعة باستخدام معامل alpha قابل للضبط، ويمكنه أن يعكس حجم الثقة بشكل أفضل لكنه يتطلب إعادة ضبط مستمرة كلما تغيرت توزيعات الدرجات، كما يحدث بعد إعادة الفهرسة أو تغيير النموذج.

متى يجب أن أستخدم البحث الهجين بدلاً من البحث المتجهي وحده؟

استخدم البحث الهجين حين تخلط استعلاماتك بين المعرّفات الحرفية (أكواد SKU، أرقام الطلبات، رموز الأخطاء) والأسئلة المفاهيمية باللغة الطبيعية، أنظمة الدعم والتجارة الإلكترونية والتذاكر تفعل ذلك عادةً. تخطَّه للمحتوى السردي فقط الذي لا يحتوي على معرّفات، حيث من المرجح ألا يُظهر تعقيد الدمج الإضافي تحسّناً قابلاً للقياس.

لماذا يفوّت البحث المتجهي التطابقات الحرفية مثل أكواد SKU أو رموز الأخطاء؟

نماذج التضمين تتعلم من أنماط اللغة العامة، ونصوص مثل "SKU-4471" أو "ERR_CONN_RST" نادراً ما تظهر كمفاهيم مستقلة ومعزولة في بيانات التدريب. لا يملك النموذج سبباً قوياً لوضع ذلك النص الحرفي أقرب إلى نفسه من رمز ذي صلة دلالية لكنه خاطئ.

أي قواعد البيانات المتجهية تدعم البحث الهجين أصلياً؟

Weaviate و Qdrant و Elasticsearch و OpenSearch و Vespa و Milvus جميعها تشحن بحثاً هجيناً أصلياً اعتباراً من 2026، رغم أن طرق الدمج الافتراضية تختلف (RRF مقابل موزون بـ Alpha مقابل تطبيع). Postgres مع pgvector يمكنه أيضاً تشغيل البحث الهجين، لكنه يحتاج إلى امتداد BM25 لأن ts_rank الأصلي ليس BM25 حقيقياً.

هل يستحق البحث الهجين التعقيد الإضافي؟

للمجموعات النصية التي تخلط بين استعلامات التطابق الحرفي والمفاهيمية، نعم. RRF العادي يتفوق بالفعل على أي طريقة أحادية على معيار WANDS (0.7068 مقابل 0.6983 لـ BM25)، والنسخة المضبوطة تصل إلى تحسّن بنسبة 7.4% (0.7497). للمجموعات النصية السردية فقط التي لا تحتوي على معرّفات، قد يفوق مرور الاسترجاع الثاني وضبط الدمج الذي يحتاجه تحسّناً لن تلاحظه. قِس قبل أن تلتزم.

هل يمكن لـ Postgres/pgvector إجراء بحث هجين دون قاعدة بيانات متجهية مخصصة؟

نعم. اقرن pgvector للتشابه الكثيف مع امتداد BM25 حقيقي مثل pg_textsearch أو VectorChord أو ParadeDB (ts_rank الأصلي وحده سجل 0.07 NDCG@10 فقط في معيار Pedro Alonso لـ pg_textsearch/pgvector، مقابل 0.70 للهجين)، ثم ادمج القائمتَين المرتّبتَين بـ RRF، كل ذلك داخل نسخة Postgres واحدة.


كلتا طريقتَي الاسترجاع تتركان فجوات حقيقية عند تشغيلهما بمفردهما: BM25 يفوّت إعادة الصياغة، والبحث المتجهي يفوّت المعرّفات الحرفية، ودمجهما بـ RRF هو الطريقة الأقل صيانةً لسد كلتيهما. إذا كنت تزن بين بناء هذا بنفسك أو الاستعانة بفريق سبق له شحن استرجاع RAG، يغطي دليلنا الكامل لبناء تطبيق RAG الخطوة التالية، أو تواصل معنا إذا كنت تفضّل أن تبنيه Techsy معك.

الوسوم

البحث الهجين bm25 مقابل vectorreciprocal rank fusionالبحث المتجهيrag

شارك هذا المقال

مقالات ذات صلة

المزيد في comparisons

comparisons
Jul 21, 2026

RPA أم الذكاء الاصطناعي أم الهجين: أيهما الأنسب لأتمتة عمليات شركتك في 2026؟

أتمتة العمليات الروبوتية (RPA) تنفّذ القواعد كما هي، بينما يتخذ الذكاء الاصطناعي قرارات تقديرية، وفي 2026 يجمع أذكى نموذج أتمتة بين الاثنين. يقدّم هذا الدليل المحايد إطار قرار ثلاثي، ومقارنة تكاليف السنة الأولى بالثالثة، وبيانات حقيقية من مشاريع نفّذناها لاختيار RPA أو الذكاء الاصطناعي أو الحل الهجين.

11 دقيقة قراءة قراءة
اقرأ
comparisons
Jul 8, 2026

OpusClip مقابل Vizard: أي مولد مقاطع بالذكاء الاصطناعي يفوز في 2026؟

اختبرنا OpusClip مقابل Vizard لعام 2026. أجرينا حسابات التكلفة لكل دقيقة مصدر واختبارًا عمليًا لجودة المقاطع لمعرفة من يفوز فعليًا — ولمن. يميل Vizard نحو القيمة والحجم، بينما يميل OpusClip نحو الانتشار وإعادة التأطير التلقائي.

12 min read قراءة
اقرأ
comparisons
Jun 24, 2026

Supabase مقابل Drizzle: لماذا لا يتنافسان فعلاً (دليل 2026)

Supabase مقابل Drizzle ليست مواجهة حقيقية: الأول هو خلفية Postgres كاملة، والثاني هو ORM بلغة TypeScript يعمل فوقها. إليك متى تستخدم كلاً منهما، وكيف تشغّلهما معاً بشكل صحيح مع RLS واجمع الاتصالات، وتفاصيل التسعير لعام 2026.

11 min read قراءة
اقرأ
عرض جميع المقالات
ابدأ مشروعك

هل أنت مستعد لبناء شيء استثنائي؟

دعنا نحول رؤيتك إلى واقع. فريقنا جاهز لمساعدتك في إنشاء برمجيات تصنع الفرق.

احجز مكالمة استكشاف لمدة 30 دقيقةشاهد أعمالنا

الأحدث من المكتبة

Claude Skills

عرض الكل
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

أتمتة الذكاء الاصطناعي

عرض الكل
  • مُدقّق الأمن

    فحص SCA وIaC أسبوعي مع PRs إصلاح مرتّبة الأولوية.

  • كاتب البريد البارد

    ينشئ رسائل أول تواصل مبنية على تفصيل عام واحد محدّد.

  • وكيل بحث العملاء المحتملين

    يثري بريداً إلكترونياً إلى ملف، ويقيّم الملاءمة، وينبّه في Slack.

الأحدث من المكتبة

Claude Skills

عرض الكل
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

أتمتة الذكاء الاصطناعي

عرض الكل
  • مُدقّق الأمن

    فحص SCA وIaC أسبوعي مع PRs إصلاح مرتّبة الأولوية.

  • كاتب البريد البارد

    ينشئ رسائل أول تواصل مبنية على تفصيل عام واحد محدّد.

  • وكيل بحث العملاء المحتملين

    يثري بريداً إلكترونياً إلى ملف، ويقيّم الملاءمة، وينبّه في Slack.

الخدمات

  • حلول المؤسسات
  • تطبيقات الجوال
  • تطبيقات الويب

الحلول

  • أنظمة إدارة علاقات العملاء
  • تكامل الذكاء الاصطناعي
  • حلول تخطيط الموارد
  • المساعدون الصوتيون
  • أتمتة العمليات
  • الأمن السيبراني

المكتبة

  • المدونة
  • أعمالنا

المجتمع

  • أتمتة الذكاء الاصطناعي
  • Claude Skills

الأدوات

  • حاسبة تكلفة تطبيق الجوال
  • حاسبة تكلفة OpenAI / LLM API
  • حاسبة تكلفة MVP
  • حاسبة تكلفة الوكيل الصوتي بالذكاء الاصطناعي

الشركة

  • من نحن
  • الشركاء
  • اتصل بنا

قانوني

  • سياسة الخصوصية
  • شروط الخدمة
  • سياسة ملفات تعريف الارتباط

الخدمات

  • حلول المؤسسات
  • تطبيقات الجوال
  • تطبيقات الويب

الحلول

  • أنظمة إدارة علاقات العملاء
  • تكامل الذكاء الاصطناعي
  • حلول تخطيط الموارد
  • المساعدون الصوتيون
  • أتمتة العمليات
  • الأمن السيبراني

المكتبة

  • المدونة
  • أعمالنا

المجتمع

  • أتمتة الذكاء الاصطناعي
  • Claude Skills

الأدوات

  • حاسبة تكلفة تطبيق الجوال
  • حاسبة تكلفة OpenAI / LLM API
  • حاسبة تكلفة MVP
  • حاسبة تكلفة الوكيل الصوتي بالذكاء الاصطناعي

الشركة

  • من نحن
  • الشركاء
  • اتصل بنا
قانونيسياسة الخصوصيةشروط الخدمةسياسة ملفات تعريف الارتباط
TECHSY
© 2026 Techsy. جميع الحقوق محفوظة.