إضافة تدقيق إملائي إلى الاستعلامات في البحث المعرفي
هام
التصحيح الإملائي في المعاينة العامة بموجب شروط الاستخدام التكميلية. وهي متوفرة من خلال مدخل Azure ومعاينة واجهة برمجة تطبيقات REST فقط.
يمكنك تحسين التذكر عن طريق التصحيح الإملائي لمصطلحات استعلام البحث الفردية قبل وصولها إلى محرك البحث. يتم دعم معلمة التدقيق الإملائي لجميع أنواع الاستعلام: بسيطةوكاملة والخيار الدلالي الموجود حاليا في المعاينة العامة.
تم إصدار Speller جنبا إلى جنب مع معاينة البحث الدلالي ويشارك معلمة queryLanguage ، ولكنه بخلاف ذلك ميزة مستقلة لها متطلباتها الأساسية. لا يوجد اشتراك أو رسوم إضافية لاستخدام هذه الميزة.
المتطلبات الأساسية
لاستخدام التدقيق الإملائي، ستحتاج إلى ما يلي:
خدمة بحث في المستوى الأساسي أو أعلى، في أي منطقة.
فهرس بحث موجود يحتوي على محتوى بلغة مدعومة.
طلب استعلام يحتوي على تعيين "speller=lexicon" و"queryLanguage" إلى لغة معتمدة. يعمل التدقيق الإملائي على السلاسل التي تم تمريرها في معلمة "البحث". إنه غير مدعوم للفلاتر.
استخدم عميل بحث يدعم معاينة واجهات برمجة التطبيقات في طلب الاستعلام. بالنسبة إلى REST، يمكنك استخدام ساعي البريد أو رمز Visual Studio أو التعليمات البرمجية التي قمت بتعديلها لإجراء مكالمات REST إلى واجهات برمجة تطبيقات المعاينة. يمكنك أيضا استخدام الإصدارات التجريبية من Azure SDKs.
| مكتبة العميل | الإصدارات |
|---|---|
| REST API | 2021-04-30-معاينة أو 2020-06-30-معاينة |
| Azure SDK لـ.NET | الإصدار 11.3.0-beta.2 |
| Azure SDK لـJava | الإصدار 11.4.0-beta.2 |
| Azure SDK لـJavaScript | الإصدار 11.2.0-beta.2 |
| Azure SDK لـPython | إصدارة 11.2.0b3 |
التصحيح الإملائي مع بحث بسيط
يستخدم المثال التالي فهرس نموذج الفنادق المضمن لتوضيح التصحيح الإملائي في استعلام نص نموذج حر بسيط. بدون تصحيح إملائي، ترجع الاستعلام صفر نتائج. مع التصحيح، يقوم الاستعلام بإرجاع نتيجة واحدة لمنتجع جونسون العائلي.
POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2020-06-30-Preview
{
"search": "famly acitvites",
"speller": "lexicon",
"queryLanguage": "en-us",
"queryType": "simple",
"select": "HotelId,HotelName,Description,Category,Tags",
"count": true
}
تصحيح الإملاء مع لوسين الكامل
يحدث التصحيح الإملائي على مصطلحات الاستعلام الفردية التي تخضع لتحليل النص، ولهذا السبب يمكنك استخدام معلمة التدقيق الإملائي مع بعض استعلامات Lucene، ولكن ليس غيرها.
- تتضمن نماذج الاستعلام غير المتوافقة التي تتجاوز تحليل النص: حرف البدل ، regex ، غامض
- تتضمن نماذج الاستعلام المتوافقة: البحث الميداني ، القرب ، تعزيز المصطلح
يستخدم هذا المثال البحث الميداني فوق حقل الفئة، مع بناء جملة Lucene الكامل، ومصطلح استعلام به خطأ إملائي. من خلال تضمين speller ، يتم تصحيح الخطأ المطبعي في "Suiite" وينجح الاستعلام.
POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2020-06-30-Preview
{
"search": "Category:(Resort and Spa) OR Category:Suiite",
"queryType": "full",
"speller": "lexicon",
"queryLanguage": "en-us",
"select": "Category",
"count": true
}
التصحيح الإملائي باستخدام البحث الدلالي
يخضع هذا الاستعلام، مع الأخطاء المطبعية في كل مصطلح باستثناء مصطلح واحد، لتصحيحات إملائية لإرجاع النتائج ذات الصلة. لمعرفة المزيد، راجع إنشاء استعلام دلالي.
POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2020-06-30-Preview
{
"search": "hisotoric hotell wiht great restrant nad wiifi",
"queryType": "semantic",
"speller": "lexicon",
"queryLanguage": "en-us",
"searchFields": "HotelName,Tags,Description",
"select": "HotelId,HotelName,Description,Category,Tags",
"count": true
}
اللغات المعتمدة
يمكن العثور على قيم صالحة ل queryLanguage في الجدول التالي، منسوخة من قائمة اللغات المدعومة (مرجع واجهة برمجة تطبيقات REST).
| اللغة | لغة الاستعلام |
|---|---|
| الإنجليزية [EN] | EN, EN-US (افتراضي) |
| الأسبانية [ES] | ES, ES-ES (افتراضي) |
| الفرنسية [FR] | FR, FR-FR (افتراضي) |
| الألمانية [DE] | DE, DE-DE (افتراضي) |
| الهولندية [NL] | NL, NL-BE, NL-NL (افتراضي) |
اعتبارات اللغة الاستعلامية
كما هو مذكور في مكان آخر، يمكن أن يحتوي طلب الاستعلام على معلمة queryLanguage واحدة فقط، ولكن تتم مشاركة هذه المعلمة بواسطة ميزات متعددة، يدعم كل منها مجموعة مختلفة من اللغات. إذا كنت تستخدم التدقيق الإملائي فقط، فإن قائمة اللغات المدعومة في الجدول أعلاه هي القائمة الكاملة.
اعتبارات محلل اللغة
غالبا ما تستخدم الفهارس التي تحتوي على محتوى غير إنجليزي محللات اللغة في الحقول غير الإنجليزية لتطبيق القواعد اللغوية للغة الأم.
إذا كنت تقوم الآن بإضافة التدقيق الإملائي إلى المحتوى الذي يخضع أيضا لتحليل اللغة، فستحقق نتائج أفضل إذا كنت تستخدم نفس اللغة في كل خطوة من خطوات الفهرسة ومعالجة الاستعلام. على سبيل المثال، إذا تمت فهرسة محتوى حقل باستخدام محلل اللغة "fr.microsoft"، فيجب أن تستخدم الاستعلامات والتدقيق الإملائي والتسميات التوضيحية الدلالية والإجابات الدلالية معجما فرنسيا أو مكتبة لغات من شكل ما.
لتلخيص كيفية استخدام مكتبات اللغات في البحث المعرفي:
يمكن استدعاء محللي اللغة أثناء الفهرسة وتنفيذ الاستعلام، وهم إما Apache Lucene (على سبيل المثال، "de.lucene") أو Microsoft ("de.microsoft").
يتم تحديد معاجم اللغة التي يتم استدعاؤها أثناء التدقيق الإملائي باستخدام أحد رموز اللغة في الجدول أعلاه.
في طلب استعلام، تنطبق القيمة المعينة ل queryLanguage بالتساوي على التهجئة والإجابات والتسميات التوضيحية.
ملاحظة
لا يعد اتساق اللغة عبر قيم الخصائص المختلفة مصدر قلق إلا إذا كنت تستخدم محللات اللغة. إذا كنت تستخدم محللات اللغة اللاأدرية (مثل الكلمة الرئيسية أو البسيطة أو القياسية أو الإيقاف أو المسافة البيضاء أو standardasciifolding.lucene) ، فيمكن أن تكون قيمة queryLanguage هي ما تريد.
على الرغم من أن المحتوى الموجود في فهرس البحث يمكن أن يتكون بلغات متعددة، إلا أن إدخال الاستعلام يكون على الأرجح في لغة واحدة. لا يتحقق محرك البحث من توافق queryLanguage ومحلل اللغة واللغة التي يتكون بها المحتوى، لذا تأكد من تحديد نطاق الاستعلامات وفقا لذلك لتجنب إنتاج نتائج غير صحيحة.