المرادفات في Azure الذكاء الاصطناعي Search

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

إنشاء مرادفات

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

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

تتكون خريطة المرادفات من الاسم والتنسيق والقواعد التي تعمل كإدخالات خريطة المرادفات. التنسيق الوحيد المعتمد هو solr، ويحدد solr التنسيق بناء القاعدة.

POST /synonymmaps?api-version=2023-11-01
{
    "name": "geo-synonyms",
    "format": "solr",
    "synonyms": "
        USA, United States, United States of America\n
        Washington, Wash., WA => WA\n"
}

لإنشاء خريطة مرادفات، قم بذلك برمجيا (لا يدعم المدخل تعريفات خريطة المرادفات):

تعريف القواعد

تلتزم قواعد التعيين بمواصفات عامل تصفية المرادفات مفتوحة المصدر ل Apache Solr، الموضحة في هذا المستند: SynonymFilter. solr يدعم التنسيق نوعين من القواعد:

  • التكافؤ (حيث تكون المصطلحات بدائل متساوية في الاستعلام)

  • تعيينات صريحة (حيث يتم تعيين المصطلحات إلى مصطلح صريح واحد قبل الاستعلام)

يجب تحديد كل قاعدة بواسطة حرف السطر الجديد (\n). يمكنك تحديد ما يصل إلى 5000 قاعدة لكل مخطط مرادف في خدمة مجانية و20000 قاعدة لكل خريطة في طبقات أخرى. يمكن أن تحتوي كل قاعدة على ما يصل إلى 20 توسيعا (أو عناصر في قاعدة). لمزيد من المعلومات، راجع حدود المرادفات.

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

قواعد التكافؤ

يتم تحديد قواعد المصطلحات المكافئة بفاصلة ضمن نفس القاعدة. في المثال الأول، يتم توسيع استعلام على USA إلى USA OR "United States" أو "United States of America". لاحظ أنه إذا كنت تريد المطابقة على عبارة، يجب أن يكون الاستعلام نفسه استعلام عبارة محاطة باقتباس.

في حالة التكافؤ، يقوم استعلام لتوسيع dog الاستعلام ليشمل أيضا puppy و canine.

{
"format": "solr",
"synonyms": "
    USA, United States, United States of America\n
    dog, puppy, canine\n
    coffee, latte, cup of joe, java\n"
}

التعيين الصريح

تتم الإشارة إلى قواعد التعيين الصريح بواسطة سهم =>. عند تحديده، يتم استبدال تسلسل مصطلح لاستعلام بحث يطابق الجانب الأيسر من => بالبدائل الموجودة على الجانب الأيمن في وقت الاستعلام.

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

{
"format": "solr",
"synonyms": "
    Washington, Wash., WA => WA\n
    California, Calif., CA => CA\n"
}

الهروب من الأحرف الخاصة

في البحث عن النص الكامل، يتم تحليل المرادفات أثناء معالجة الاستعلام تماما مثل أي مصطلح استعلام آخر، ما يعني أن القواعد حول الأحرف المحجوزة والأحرف الخاصة تنطبق على المصطلحات الموجودة في خريطة المرادفات. تختلف قائمة الأحرف التي تتطلب الهروب بين بناء الجملة البسيط وبناء الجملة الكامل:

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

يوضح المثال التالي مثالا على كيفية الهروب من حرف بسلة مائلة عكسية:

{
    "format": "solr",
    "synonyms": "WA\, USA, WA, Washington\n"
}

نظرا لأن شرطة مائلة عكسية هي نفسها شخصية خاصة بلغات أخرى مثل JSON وC#، فمن المحتمل أنك ستحتاج إلى الهروب المزدوج منها. على سبيل المثال، قد تبدو JSON المرسلة إلى واجهة برمجة تطبيقات REST لخريطة المرادفات أعلاه كما يلي:

{
    "format":"solr",
    "synonyms": "WA\\, USA, WA, Washington"
}

تحميل خرائط المرادفات وإدارتها

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

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

تعيين المرادفات إلى الحقول

بعد تحميل خريطة مرادفات، يمكنك تمكين المرادفات على حقول من النوع Edm.String أو Collection(Edm.String)، على الحقول التي تحتوي "searchable":trueعلى . كما هو مشار إليه، يمكن لتعريف الحقل استخدام مخطط مرادف واحد فقط.

POST /indexes?api-version=2023-11-01
{
    "name":"hotels-sample-index",
    "fields":[
        {
            "name":"description",
            "type":"Edm.String",
            "searchable":true,
            "synonymMaps":[
            "en-synonyms"
            ]
        },
        {
            "name":"description_fr",
            "type":"Edm.String",
            "searchable":true,
            "analyzer":"fr.microsoft",
            "synonymMaps":[
            "fr-synonyms"
            ]
        }
    ]
}

الاستعلام عن الحقول المكافئة أو المعينة

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

كيفية استخدام المرادفات أثناء تنفيذ الاستعلام

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

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

داخليا، تعيد ميزة المرادفات كتابة الاستعلام الأصلي بمرادفات مع عامل التشغيل OR. لهذا السبب، تتعامل ملفات تعريف التمييز والتهديف مع المصطلح والمرادفات الأصلية على أنها مكافئة.

تنطبق المرادفات على استعلامات النص ذات النموذج الحر فقط ولا يتم دعمها لعوامل التصفية أو الواجهات أو الإكمال التلقائي أو الاقتراحات. تستند الإكمال التلقائي والاقتراحات فقط إلى المصطلح الأصلي؛ لا تظهر تطابقات المرادفات في الاستجابة.

لا تنطبق توسيعات المرادفات على مصطلحات البحث عن أحرف البدل؛ لا يتم توسيع البادئة والمصطلحات الغامضة ومصطلحات regex.

إذا كنت بحاجة إلى إجراء استعلام واحد يطبق توسيع المرادف وأحرف البدل أو regex أو عمليات البحث الغامضة، يمكنك دمج الاستعلامات باستخدام بناء جملة OR. على سبيل المثال، لدمج المرادفات مع أحرف البدل لبناء جملة استعلام بسيط، سيكون <query> | <query>*المصطلح .

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

الخطوات التالية