Milvus
Zilliz
  • Home
  • Blog
  • مطابقة العبارات مع الانحدار في الإصدار 2.6 من ميلفوس: كيفية تحسين دقة البحث عن النص الكامل على مستوى العبارة

مطابقة العبارات مع الانحدار في الإصدار 2.6 من ميلفوس: كيفية تحسين دقة البحث عن النص الكامل على مستوى العبارة

  • Tutorials
December 29, 2025
Alex Zhang

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

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

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

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

ما هو تطابق العبارات؟

Phrase Match هو نوع من الاستعلام عن النص الكامل في Milvus يركز على البنية - وتحديدًا،ما إذا كان تسلسل الكلمات يظهر بنفس الترتيب داخل المستند. عندما لا يُسمح بأي مرونة، يتصرف الاستعلام بشكل صارم: يجب أن تظهر المصطلحات بجانب بعضها البعض وبالتسلسل. وبالتالي فإن استعلام مثل "التعلم الآلي للروبوتات" يتطابق فقط عندما تظهر هذه الكلمات الثلاث كعبارة متصلة.

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

يعالج ميلفوس 2.6 هذا الاحتكاك بآلية بسيطة: الانحدار. يحدد الانحدار مقدار مساحة المناورة المسموح بها بين عبارات الاستعلام. وبدلاً من التعامل مع العبارة على أنها هشة وغير مرنة، يتيح لك الانحدار تحديد ما إذا كانت كلمة واحدة إضافية مقبولة أو كلمتين، أو حتى ما إذا كانت إعادة الترتيب الطفيفة يجب أن تظل تُعتبر مطابقة. هذا ينقل البحث عن العبارة من اختبار نجاح-فشل ثنائي إلى أداة استرجاع مضبوطة وقابلة للضبط.

لمعرفة سبب أهمية ذلك، تخيل أن تبحث في السجلات عن جميع المتغيرات للخطأ المألوف في الشبكات "إعادة تعيين الاتصال من قبل النظير". عملياً، قد تبدو سجلاتك كما يلي:

connection reset by peer
connection fast reset by peer
connection was suddenly reset by the peer
peer reset connection by ...
peer unexpected connection reset happened

في لمحة خاطفة، كل هذه تمثل نفس الحدث الأساسي. لكن طرق الاسترجاع الشائعة تكافح:

يكافح BM25 مع البنية.

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

يكافح البحث المتجه مع القيود.

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

تملأ مطابقة العبارة الفجوة بين هذين النهجين. باستخدام الانحدار، يمكنك تحديد مقدار الاختلاف المقبول بالضبط:

  • slop = 0 - المطابقة التامة (يجب أن تظهر جميع المصطلحات بشكل متجاور ومرتب).

  • slop = 1 - السماح بكلمة واحدة إضافية (يغطي الاختلافات الشائعة في اللغة الطبيعية بمصطلح واحد مُدرج).

  • slop = 2 - السماح بإدراج كلمات متعددة (يعالج الصياغة الوصفية أو المطولة).

  • slop = 3 - السماح بإعادة الترتيب (يدعم العبارات المعكوسة أو غير المرتبة، وغالبًا ما تكون أصعب حالة في النص الواقعي).

بدلاً من أن تأمل في أن تقوم خوارزمية التسجيل "بالترتيب الصحيح"، يمكنك الإعلان صراحةً عن التسامح البنيوي الذي يتطلبه تطبيقك.

كيفية عمل مطابقة العبارات في ميلفوس

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

يوضح الرسم البياني أدناه العملية:

1. ترميز المستند (مع تحديد المواقع)

عندما يتم إدراج المستندات في Milvus، تتم معالجة حقول النص بواسطة محلل، والذي يقسم النص إلى رموز (كلمات أو مصطلحات) ويسجل موضع كل رمز داخل المستند. على سبيل المثال، يتم ترميز doc_1 على أنه: machine (pos=0), learning (pos=1), boosts (pos=2), efficiency (pos=3).

2. إنشاء الفهرس المقلوب

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

3. مطابقة العبارة

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

يلخص الرسم البياني أدناه كيفية عمل مطابقة العبارة من طرف إلى طرف.

كيفية تمكين مطابقة العبارة في ملفوس

تعمل مطابقة العبارة على الحقول من النوع VARCHARنوع السلسلة في ملفوس. لاستخدامها، يجب عليك تكوين مخطط مجموعتك بحيث يقوم Milvus بإجراء تحليل النص وتخزين المعلومات الموضعية للحقل. يتم ذلك من خلال تمكين معلمتين: enable_analyzer و enable_match.

تعيين تمكين_المحلل وتمكين_المطابقة

لتشغيل مطابقة العبارة لحقل VARCHAR معين، قم بتعيين المعلمتين على True عند تحديد مخطط الحقل. يخبران معًا ميلفوس بـ

  • ترميز النص (عبر enable_analyzer)، و

  • إنشاء فهرس مقلوب مع إزاحات موضعية (عبر enable_match).

تعتمد مطابقة العبارة على كلتا الخطوتين: يقوم المحلل بتقسيم النص إلى رموز، ويخزن فهرس المطابقة مكان ظهور تلك الرموز، مما يتيح الاستعلامات الفعالة القائمة على العبارات والعلامات المائلة.

فيما يلي مثال على تكوين المخطط الذي يتيح مطابقة العبارة على حقل text:

from pymilvus import MilvusClient, DataType

schema = MilvusClient.create_schema(enable_dynamic_field=False) schema.add_field( field_name=“id”, datatype=DataType.INT64, is_primary=True, auto_id=True ) schema.add_field( field_name=‘text’, # Name of the field datatype=DataType.VARCHAR, # Field data type set as VARCHAR (string) max_length=1000, # Maximum length of the string enable_analyzer=True, # Enables text analysis (tokenization) enable_match=True # Enables inverted indexing for phrase matching ) schema.add_field( field_name=“embeddings”, datatype=DataType.FLOAT_VECTOR, dim=5 )

البحث باستخدام مطابقة العبارة: كيف يؤثر الانحدار على مجموعة المرشحين

بمجرد تمكين المطابقة لحقل VARCHAR في مخطط المجموعة الخاص بك، يمكنك إجراء مطابقات العبارات باستخدام التعبير PHRASE_MATCH.

ملاحظة: التعبير PHRASE_MATCH غير حساس لحالة الأحرف. يمكنك استخدام إما PHRASE_MATCH أو phrase_match.

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

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

لنفترض أن لديك مجموعة باسم tech_articles تحتوي على الكيانات الخمسة التالية:

doc_idنص
1التعلم الآلي يعزز الكفاءة في تحليل البيانات على نطاق واسع
2يُعد تعلم النهج القائم على الآلة أمرًا حيويًا لتقدم الذكاء الاصطناعي الحديث
3تعمل البنى الآلية للتعلم العميق على تحسين الأحمال الحاسوبية
4تعمل الآلة بسرعة على تحسين أداء النموذج للتعلم المستمر
5يؤدي تعلم خوارزميات الآلة المتقدمة إلى توسيع قدرات الذكاء الاصطناعي

slop=1

هنا، نسمح هنا بـ 1. يتم تطبيق الفلتر على المستندات التي تحتوي على عبارة "آلة التعلم" مع مرونة طفيفة.

# Example: Filter documents containing "learning machine" with slop=1
filter_slop1 = "PHRASE_MATCH(text, 'learning machine', 1)"

result_slop1 = client.search( collection_name=“tech_articles”, anns_field=“embeddings”, data=[query_vector], filter=filter_slop1, search_params={“params”: {“nprobe”: 10}}, limit=10, output_fields=[“id”, “text”] )

نتائج المطابقة:

doc_idنص
2يعد تعلم النهج القائم على الآلة أمرًا حيويًا لتقدم الذكاء الاصطناعي الحديث
3تعمل البنى الآلية للتعلم العميق على تحسين الأحمال الحسابية
5يؤدي تعلم خوارزميات الآلة المتقدمة إلى توسيع قدرات الذكاء الاصطناعي

slop=2

يسمح هذا المثال بـ 2 منحدر، مما يعني أنه يُسمح بما يصل إلى رمزين إضافيين (أو مصطلحين معكوسين) بين كلمتي "آلة" و"تعلم".

# Example: Filter documents containing "machine learning" with slop=2
filter_slop2 = "PHRASE_MATCH(text, 'machine learning', 2)"

result_slop2 = client.search( collection_name=“tech_articles”, anns_field=“embeddings”, # Vector field name data=[query_vector], # Query vector filter=filter_slop2, # Filter expression search_params={“params”: {“nprobe”: 10}}, limit=10, # Maximum results to return output_fields=[“id”, “text”] )

نتائج المطابقة:

doc_idنص
1يعزز التعلم الآلي الكفاءة في تحليل البيانات على نطاق واسع
3تعمل البنى الآلية للتعلم العميق على تحسين الأحمال الحسابية

slop=3

في هذا المثال، يوفر المنحدر 3 المزيد من المرونة. يبحث المرشح عن "التعلم الآلي" مع السماح بما يصل إلى ثلاثة مواضع رمزية بين الكلمات.

# Example: Filter documents containing "machine learning" with slop=3
filter_slop3 = "PHRASE_MATCH(text, 'machine learning', 3)"

result_slop2 = client.search( collection_name=“tech_articles”, anns_field=“embeddings”, # Vector field name data=[query_vector], # Query vector filter=filter_slop3, # Filter expression search_params={“params”: {“nprobe”: 10}}, limit=10, # Maximum results to return output_fields=[“id”, “text”] )

نتائج المطابقة:

doc_idنص
1التعلّم الآلي يعزز الكفاءة في تحليل البيانات على نطاق واسع
2يُعد تعلم النهج القائم على الآلة أمرًا حيويًا لتقدم الذكاء الاصطناعي الحديث
3تعمل البنى الآلية للتعلم العميق على تحسين الأحمال الحسابية
5تعلم خوارزميات الآلة المتقدمة يوسع قدرات الذكاء الاصطناعي

نصائح سريعة ما تحتاج إلى معرفته قبل تمكين مطابقة العبارات في ميلفوس

توفر مطابقة العبارات دعمًا للتصفية على مستوى العبارة، ولكن تمكينها ينطوي على أكثر من مجرد تكوين وقت الاستعلام. من المفيد أن تكون على دراية بالاعتبارات المرتبطة بها قبل تطبيقها في إعداد الإنتاج.

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

  • تكوين المحلّل هو خيار تصميم حاسم آخر. بمجرد تعريف المحلل في مخطط المجموعة، لا يمكن تغييره. يتطلب التبديل إلى محلل مختلف في وقت لاحق إسقاط المجموعة الحالية وإعادة إنشائها بمخطط جديد. لهذا السبب، يجب التعامل مع اختيار المحلل كقرار طويل الأمد وليس كتجربة.

  • يرتبط سلوك مطابقة العبارة ارتباطًا وثيقًا بكيفية ترميز النص. قبل تطبيق محلل على مجموعة كاملة، يوصى باستخدام طريقة run_analyzer لفحص مخرجات الترميز والتأكد من مطابقتها لتوقعاتك. يمكن أن تساعد هذه الخطوة في تجنب عدم التطابق الدقيق ونتائج الاستعلام غير المتوقعة لاحقًا. لمزيد من المعلومات، راجع نظرة عامة على المحلل.

الخاتمة

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

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

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

جربه مع البرامج النصية التجريبية، واستكشف Milvus 2.6 لترى كيف يتناسب الاسترجاع المدرك للعبارات مع مجموعتك.

هل لديك أسئلة أو تريد التعمق في أي ميزة من أحدث إصدار من ميلفوس؟ انضم إلى قناة Discord الخاصة بنا أو قم بتسجيل المشكلات على GitHub. يمكنك أيضًا حجز جلسة فردية مدتها 20 دقيقة للحصول على رؤى وإرشادات وإجابات لأسئلتك من خلال ساعات عمل Milvus المكتبية.

    Try Managed Milvus for Free

    Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

    Get Started

    Like the article? Spread the word

    استمر في القراءة