البحث عن النص الكامل في Azure Cognitive Search
هذه المقالة مخصصة للمطورين الذين يحتاجون إلى فهم أعمق لكيفية عمل البحث عن النص الكامل ل Lucene في Azure Cognitive Search. بالنسبة للاستعلامات النصية، سيقدم Azure Cognitive Search النتائج المتوقعة بسلاسة في معظم السيناريوهات، ولكن في بعض الأحيان قد تحصل على نتيجة تبدو "متوقفة" بطريقة أو بأخرى. في هذه الحالات، يمكن أن يساعدك وجود خلفية في المراحل الأربع لتنفيذ استعلام Lucene (تحليل الاستعلام، التحليل المعجمي، مطابقة المستندات، تسجيل النقاط) في تحديد تغييرات معينة على معلمات الاستعلام أو تكوين الفهرس الذي سيحقق النتيجة المرجوة.
ملاحظة
يستخدم Azure Cognitive Search Apache Lucene للبحث عن النص الكامل، ولكن تكامل Lucene ليس شاملا. نقوم بعرض وظائف Lucene وتوسيعها بشكل انتقائي لتمكين السيناريوهات المهمة للبحث المعرفي في Azure.
نظرة عامة على الهندسة المعمارية والرسم التخطيطي
تبدأ معالجة استعلام بحث النص الكامل بتحليل نص الاستعلام لاستخراج مصطلحات البحث. يستخدم محرك البحث فهرسا لاسترداد المستندات ذات المصطلحات المطابقة. في بعض الأحيان يتم تقسيم مصطلحات الاستعلام الفردية وإعادة تشكيلها إلى أشكال جديدة لإلقاء شبكة أوسع على ما يمكن اعتباره تطابقا محتملا. ثم يتم فرز مجموعة النتائج حسب درجة الصلة المعينة لكل مستند مطابقة فردي. يتم إرجاع أولئك الموجودين في أعلى القائمة المرتبة إلى تطبيق الاتصال.
بعد إعادة صياغته، يتكون تنفيذ الاستعلام من أربع مراحل:
- تحليل الاستعلام
- التحليل المعجمي
- استرجاع المستندات
- سجل
يوضح الرسم البياني أدناه المكونات المستخدمة لمعالجة طلب بحث.

| المكونات الرئيسية | الوصف الوظيفي |
|---|---|
| محللو الاستعلام | افصل مصطلحات الاستعلام عن عوامل تشغيل الاستعلام وقم بإنشاء بنية الاستعلام (شجرة استعلام) ليتم إرسالها إلى محرك البحث. |
| المحللات | إجراء تحليل معجمي على شروط الاستعلام. يمكن أن تتضمن هذه العملية تحويل مصطلحات الاستعلام أو إزالتها أو توسيعها. |
| الفهرس | بنية بيانات فعالة تستخدم لتخزين وتنظيم المصطلحات القابلة للبحث المستخرجة من المستندات المفهرسة. |
| محرك البحث | استرداد المستندات المطابقة وتسجيلها استنادا إلى محتويات الفهرس المقلوب. |
تشريح طلب البحث
طلب البحث هو مواصفات كاملة لما يجب إرجاعه في مجموعة النتائج. في أبسط شكل ، إنه استعلام فارغ بدون معايير من أي نوع. يتضمن المثال الأكثر واقعية معلمات ، والعديد من مصطلحات الاستعلام ، وربما يتم نطاقها في حقول معينة ، مع احتمال وجود تعبير عامل تصفية وقواعد ترتيب.
المثال التالي هو طلب بحث يمكنك إرساله إلى Azure Cognitive Search باستخدام واجهة برمجة تطبيقات REST.
POST /indexes/hotels/docs/search?api-version=2020-06-30
{
"search": "Spacious, air-condition* +\"Ocean view\"",
"searchFields": "description, title",
"searchMode": "any",
"filter": "price ge 60 and price lt 300",
"orderby": "geo.distance(location, geography'POINT(-159.476235 22.227659)')",
"queryType": "full"
}
لهذا الطلب ، يقوم محرك البحث بما يلي:
- تصفية المستندات التي يكون فيها السعر 60 دولارا على الأقل وأقل من 300 دولار.
- ينفذ الاستعلام. في هذا المثال، يتكون استعلام البحث من عبارات ومصطلحات:
"Spacious, air-condition* +\"Ocean view\""(لا يدخل المستخدمون عادة علامات الترقيم، ولكن تضمينها في المثال يسمح لنا بشرح كيفية تعامل المحللين معها). بالنسبة لهذا الاستعلام، يقوم محرك البحث بمسح حقلي الوصف والعنوان المحددين فيsearchFieldsالمستندات التي تحتوي على "عرض المحيط"، بالإضافة إلى المصطلح "واسع"، أو بشروط تبدأ بالبادئة "مكيف الهواء". يتم استخدام المعلمةsearchModeللمطابقة على أي مصطلح (افتراضي) أو جميعها ، للحالات التي لا يكون فيها المصطلح مطلوبا صراحة (+). - يطلب مجموعة الفنادق الناتجة عن ذلك عن طريق القرب من موقع جغرافي معين، ثم يعود إلى تطبيق الاتصال.
تتناول غالبية هذه المقالة معالجة استعلام البحث: "Spacious, air-condition* +\"Ocean view\"". التصفية والترتيب خارج النطاق. لمزيد من المعلومات، راجع الوثائق المرجعية لواجهة برمجة تطبيقات البحث.
المرحلة 1: تحليل الاستعلام
كما هو مذكور، سلسلة الاستعلام هي السطر الأول من الطلب:
"search": "Spacious, air-condition* +\"Ocean view\"",
يفصل محلل الاستعلام عوامل التشغيل (مثل * وفي + المثال) عن مصطلحات البحث، ويقوم بتفكيك استعلام البحث إلى استعلامات فرعية من نوع مدعوم:
- استعلام المصطلحات للمصطلحات المستقلة (مثل الواسعة)
- استعلام العبارة للمصطلحات المقتبسة (مثل عرض المحيط)
- استعلام البادئة للمصطلحات متبوعا بعامل تشغيل بادئة
*(مثل تكييف الهواء)
للحصول على قائمة كاملة بأنواع الاستعلام المدعومة، راجع بناء جملة استعلام Lucene
يحدد المشغلون المقترنون باستعلام فرعي ما إذا كان الاستعلام "يجب أن يكون" أو "ينبغي" أن يكون راضيا حتى يتم اعتبار المستند مطابقا. على سبيل المثال ، +"Ocean view" هو "يجب" بسبب + المشغل.
يقوم محلل الاستعلام بإعادة هيكلة الاستعلامات الفرعية في شجرة استعلام (بنية داخلية تمثل الاستعلام) يمررها إلى محرك البحث. في المرحلة الأولى من تحليل الاستعلام، تبدو شجرة الاستعلام هكذا.

المحللون المدعومون: لوسين بسيطة وكاملة
يعرض Azure Cognitive Search لغتي استعلام مختلفتين، simple (افتراضية) و full. من خلال تعيين المعلمة مع طلب البحث الخاص بك، يمكنك إخبار محلل الاستعلام بلغة الاستعلام التي تختارها حتى يعرف كيفية تفسير عوامل التشغيل وبناء الجملة queryType . لغة الاستعلام البسيطة بديهية وقوية ، وغالبا ما تكون مناسبة لتفسير مدخلات المستخدم كما هي دون معالجة من جانب العميل. وهو يدعم مشغلي الاستعلام المألوفين من محركات البحث على الويب. تعمل لغة استعلام Lucene الكاملة، التي تحصل عليها عن طريق الإعداد، على توسيع لغة الاستعلام البسيطة الافتراضية عن طريق إضافة دعم لمزيد من عوامل التشغيل وأنواع الاستعلام مثل استعلامات أحرف البدل والضبابية وregex والاستعلامات ذات النطاق الميداني queryType=full. على سبيل المثال، سيتم تفسير تعبير عادي يتم إرساله في بناء جملة استعلام بسيط على أنه سلسلة استعلام وليس تعبيرا. يستخدم طلب المثال في هذه المقالة لغة استعلام Lucene الكاملة.
تأثير وضع البحث على المحلل اللغوي
معلمة طلب بحث أخرى تؤثر على التحليل هي المعلمة searchMode . يتحكم في عامل التشغيل الافتراضي للاستعلامات المنطقية: أي (افتراضي) أو الكل.
عندما searchMode=any، وهو الافتراضي ، يكون محدد المسافة بين الفسيحة ومكيف الهواء هو OR (||) ، مما يجعل نص نموذج الاستعلام معادلا لما يلي:
Spacious,||air-condition*+"Ocean view"
عوامل التشغيل الصريحة ، كما هو الحال + في ، لا لبس فيها في +"Ocean view"بناء الاستعلام المنطقي ( يجب أن يتطابق المصطلح). أقل وضوحا هو كيفية تفسير المصطلحات المتبقية: فسيحة وتكييف الهواء. هل يجب أن يجد محرك البحث تطابقات على إطلالة على المحيط وفسيحة ومكيفة؟ أم يجب أن تجد إطلالة على المحيط بالإضافة إلى أي من المصطلحين المتبقيين؟
بشكل افتراضي (searchMode=any) ، يفترض محرك البحث التفسير الأوسع. يجب مطابقة أي من الحقلين ، مما يعكس دلالات "أو". تعرض شجرة الاستعلام الأولية الموضحة سابقا، مع عمليتي "ينبغي"، الإعداد الافتراضي.
لنفترض أننا وضعنا searchMode=allالآن . في هذه الحالة ، يتم تفسير المساحة على أنها عملية "و". يجب أن يكون كل من المصطلحين المتبقيين حاضرين في المستند للتأهل كمطابقة. سيتم تفسير نموذج الاستعلام الناتج على النحو التالي:
+Spacious,+air-condition*+"Ocean view"
ستكون شجرة الاستعلام المعدلة لهذا الاستعلام كما يلي، حيث يكون المستند المطابق هو تقاطع جميع الاستعلامات الفرعية الثلاثة:

ملاحظة
الاختيار searchMode=anysearchMode=all هو قرار من الأفضل التوصل إليه من خلال تشغيل الاستعلامات التمثيلية. قد يجد المستخدمون الذين من المحتمل أن يضمنوا عوامل تشغيل (شائعة عند البحث في مخازن المستندات) نتائج أكثر سهولة إذا قاموا searchMode=all بإبلاغ هياكل الاستعلام المنطقي. لمزيد من المعلومات حول التفاعل بين searchMode عوامل التشغيل وعوامل التشغيل، راجع بناء جملة الاستعلام البسيط.
المرحلة 2: التحليل المعجمي
تقوم أجهزة التحليل المعجمي بمعالجة استعلامات المصطلحات واستعلاماتالعبارات بعد هيكلة شجرة الاستعلام. يقبل المحلل مدخلات النص التي يقدمها له المحلل ، ويعالج النص ، ثم يرسل المصطلحات الرمزية مرة أخرى ليتم دمجها في شجرة الاستعلام.
الشكل الأكثر شيوعا للتحليل المعجمي هو التحليل اللغوي الذي يحول مصطلحات الاستعلام بناء على قواعد خاصة بلغة معينة:
- تقليل مصطلح استعلام إلى الشكل الجذري لكلمة
- إزالة الكلمات غير الأساسية (كلمات التوقف، مثل "the" أو "and" باللغة الإنجليزية)
- تقسيم كلمة مركبة إلى أجزاء مكونة
- تقليل غلاف كلمة بأحرف كبيرة
تميل جميع هذه العمليات إلى محو الاختلافات بين إدخال النص الذي يقدمه المستخدم والمصطلحات المخزنة في الفهرس. وتتجاوز هذه العمليات معالجة النصوص وتتطلب معرفة متعمقة باللغة نفسها. لإضافة هذه الطبقة من الوعي اللغوي، يدعم Azure Cognitive Search قائمة طويلة من محللي اللغات من كل من Lucene وMicrosoft.
ملاحظة
يمكن أن تتراوح متطلبات التحليل من الحد الأدنى إلى التفصيل اعتمادا على السيناريو الخاص بك. يمكنك التحكم في تعقيد التحليل المعجمي عن طريق تحديد أحد أجهزة التحليل المحددة مسبقا أو عن طريق إنشاء محلل مخصص خاص بك. يتم تحديد نطاق أجهزة التحليل إلى حقول قابلة للبحث ويتم تحديدها كجزء من تعريف الحقل. هذا يسمح لك بتغيير التحليل المعجمي على أساس كل حقل. غير محدد ، يتم استخدام محلل Lucene القياسي .
في مثالنا، قبل التحليل، تحتوي شجرة الاستعلام الأولية على المصطلح "واسع"، مع حرف كبير "S" وفاصلة يفسرها محلل الاستعلام كجزء من مصطلح الاستعلام (لا تعتبر الفاصلة عامل تشغيل لغة استعلام).
عندما يعالج المحلل الافتراضي المصطلح ، فإنه سيخفض الأحرف الصغيرة "عرض المحيط" و "واسع" ، ويزيل حرف الفاصلة. ستبدو شجرة الاستعلام المعدلة كما يلي:

اختبار سلوكيات المحلل
يمكن اختبار سلوك المحلل باستخدام واجهة برمجة تطبيقات التحليل. أدخل النص الذي تريد تحليله لمعرفة المصطلحات التي سيولدها محلل معين. على سبيل المثال ، لمعرفة كيفية معالجة المحلل القياسي للنص "مكيف" ، يمكنك إصدار الطلب التالي:
{
"text": "air-condition",
"analyzer": "standard"
}
يقوم المحلل القياسي بتقسيم نص الإدخال إلى الرمزين التاليين ، مع التعليق عليهما بسمات مثل إزاحة البداية والنهاية (المستخدمة لتمييز النتائج) بالإضافة إلى موضعهما (المستخدم لمطابقة العبارة):
{
"tokens": [
{
"token": "air",
"startOffset": 0,
"endOffset": 3,
"position": 0
},
{
"token": "condition",
"startOffset": 4,
"endOffset": 13,
"position": 1
}
]
}
استثناءات من التحليل المعجمي
ينطبق التحليل المعجمي فقط على أنواع الاستعلامات التي تتطلب مصطلحات كاملة - إما استعلام مصطلح أو استعلام عبارة. لا ينطبق على أنواع الاستعلام ذات المصطلحات غير المكتملة - استعلام البادئة أو استعلام أحرف البدل أو استعلام regex - أو استعلام غامض. تتم إضافة أنواع الاستعلام هذه، بما في ذلك استعلام البادئة مع المصطلح air-condition* في مثالنا، مباشرة إلى شجرة الاستعلام، متجاوزة مرحلة التحليل. التحويل الوحيد الذي يتم إجراؤه على شروط الاستعلام من هذه الأنواع هو خفض الغلاف.
المرحلة 3: استرجاع المستندات
يشير استرجاع المستندات إلى العثور على مستندات ذات مصطلحات مطابقة في الفهرس. يتم فهم هذه المرحلة بشكل أفضل من خلال مثال. لنبدأ بفهرس الفنادق الذي يحتوي على المخطط البسيط التالي:
{
"name": "hotels",
"fields": [
{ "name": "id", "type": "Edm.String", "key": true, "searchable": false },
{ "name": "title", "type": "Edm.String", "searchable": true },
{ "name": "description", "type": "Edm.String", "searchable": true }
]
}
وافترض كذلك أن هذا الفهرس يحتوي على الوثائق الأربع التالية:
{
"value": [
{
"id": "1",
"title": "Hotel Atman",
"description": "Spacious rooms, ocean view, walking distance to the beach."
},
{
"id": "2",
"title": "Beach Resort",
"description": "Located on the north shore of the island of Kauaʻi. Ocean view."
},
{
"id": "3",
"title": "Playa Hotel",
"description": "Comfortable, air-conditioned rooms with ocean view."
},
{
"id": "4",
"title": "Ocean Retreat",
"description": "Quiet and secluded"
}
]
}
كيفية فهرسة المصطلحات
لفهم الاسترجاع ، من المفيد معرفة بعض الأساسيات حول الفهرسة. وحدة التخزين هي فهرس مقلوب ، واحد لكل حقل قابل للبحث. ضمن فهرس مقلوب توجد قائمة مرتبة بجميع المصطلحات من جميع المستندات. كل مصطلح يرسم خريطة لقائمة الوثائق التي يحدث فيها، كما هو واضح في المثال أدناه.
لإنتاج المصطلحات في فهرس مقلوب ، يقوم محرك البحث بإجراء تحليل معجمي على محتوى المستندات ، على غرار ما يحدث أثناء معالجة الاستعلام:
- يتم تمرير مدخلات النص إلى محلل ، بأحرف صغيرة ، مجردة من علامات الترقيم ، وما إلى ذلك ، اعتمادا على تكوين المحلل.
- الرموز المميزة هي نتاج التحليل المعجمي.
- تتم إضافة المصطلحات إلى الفهرس.
من الشائع، ولكن ليس مطلوبا، استخدام نفس أدوات التحليل لعمليات البحث والفهرسة بحيث تبدو مصطلحات الاستعلام أشبه بالمصطلحات داخل الفهرس.
ملاحظة
يتيح لك Azure Cognitive Search تحديد محللات مختلفة للفهرسة والبحث عبر معلمات إضافية indexAnalyzer وميدانية searchAnalyzer . إذا لم يتم تحديده، استخدام المحلل الذي analyzer تم تعيينه مع الخاصية لكل من الفهرسة والبحث.
فهرس مقلوب على سبيل المثال المستندات
بالعودة إلى مثالنا ، بالنسبة لحقل العنوان ، يبدو الفهرس المقلوب كما يلي:
| المدة | قائمة المستندات |
|---|---|
| عتمان | 1 |
| beach | 2 |
| فندق | 1, 3 |
| محيط | 4 |
| بلايا | 3 |
| المصيف | 3 |
| تراجع | 4 |
في حقل العنوان، يظهر الفندق فقط في وثيقتين: 1، 3.
بالنسبة لحقل الوصف ، يكون الفهرس كما يلي:
| المدة | قائمة المستندات |
|---|---|
| هواء | 3 |
| و | 4 |
| beach | 1 |
| مشروطه | 3 |
| مريح | 3 |
| بون | 1 |
| جزيرة | 2 |
| كواي | 2 |
| الموقع | 2 |
| الشمال | 2 |
| محيط | 1, 2, 3 |
| من | 2 |
| تشغيل | 2 |
| هدوء | 4 |
| غرف | 1, 3 |
| منعزل | 4 |
| شاطئ | 2 |
| واسع | 1 |
| ال | 1، 2 |
| إلى | 1 |
| منظر | 1, 2, 3 |
| المشي | 1 |
| مع | 3 |
مطابقة مصطلحات الاستعلام مع المصطلحات المفهرسة
بالنظر إلى المؤشرات المقلوبة أعلاه، دعنا نعود إلى نموذج الاستعلام ونرى كيف يتم العثور على المستندات المطابقة لاستعلام المثال الخاص بنا. تذكر أن شجرة الاستعلام النهائية تبدو كما يلي:

أثناء تنفيذ الاستعلام، يتم تنفيذ الاستعلامات الفردية مقابل الحقول القابلة للبحث بشكل مستقل.
يطابق TermQuery ، "الواسع" ، الوثيقة 1 (فندق Atman).
استعلام البادئة، "مكيف*"، لا يتطابق مع أي مستندات.
هذا سلوك يربك المطورين في بعض الأحيان. على الرغم من وجود مصطلح مكيف الهواء في المستند ، إلا أنه يتم تقسيمه إلى مصطلحين بواسطة المحلل الافتراضي. تذكر أن استعلامات البادئة، التي تحتوي على مصطلحات جزئية، لا يتم تحليلها. لذلك يتم البحث عن المصطلحات ذات البادئة "تكييف الهواء" في الفهرس المقلوب ولا يتم العثور عليها.
يبحث PhraseQuery ، "عرض المحيط" ، عن مصطلحي "المحيط" و "العرض" ويتحقق من قرب المصطلحات في المستند الأصلي. تتطابق المستندات 1 و2 و3 مع هذا الاستعلام في حقل الوصف. تحتوي وثيقة الإشعار 4 على مصطلح المحيط في العنوان ولكنها لا تعتبر متطابقة ، لأننا نبحث عن عبارة "منظر المحيط" بدلا من الكلمات الفردية.
ملاحظة
يتم تنفيذ استعلام البحث بشكل مستقل مقابل جميع الحقول القابلة للبحث في فهرس Azure Cognitive Search ما لم تحد من الحقول التي تم تعيينها باستخدام المعلمة searchFields ، كما هو موضح في مثال طلب البحث. يتم إرجاع المستندات التي تتطابق في أي من الحقول المحددة.
بشكل عام ، بالنسبة للاستعلام المعني ، فإن المستندات التي تتطابق هي 1 و 2 و 3.
المرحلة 4: التسجيل
يتم تعيين درجة صلة لكل مستند في مجموعة نتائج البحث. تتمثل وظيفة درجة الصلة في ترتيب أعلى لتلك المستندات التي تجيب بشكل أفضل على سؤال المستخدم كما هو موضح في استعلام البحث. يتم حساب النتيجة بناء على الخصائص الإحصائية للمصطلحات المطابقة. في صميم صيغة التسجيل هو TF / IDF (تردد الوثيقة العكسية للمصطلح). في الاستعلامات التي تحتوي على مصطلحات نادرة وشائعة، تروج TF/IDF للنتائج التي تحتوي على المصطلح النادر. على سبيل المثال ، في فهرس افتراضي يحتوي على جميع مقالات ويكيبيديا ، من المستندات التي تطابق استفسار الرئيس ، تعتبر المستندات المطابقة للرئيس أكثر صلة من المستندات المطابقة على.
مثال على تسجيل النقاط
تذكر المستندات الثلاثة التي تطابق استعلام المثال الخاص بنا:
search=Spacious, air-condition* +"Ocean view"
{
"value": [
{
"@search.score": 0.25610128,
"id": "1",
"title": "Hotel Atman",
"description": "Spacious rooms, ocean view, walking distance to the beach."
},
{
"@search.score": 0.08951007,
"id": "3",
"title": "Playa Hotel",
"description": "Comfortable, air-conditioned rooms with ocean view."
},
{
"@search.score": 0.05967338,
"id": "2",
"title": "Ocean Resort",
"description": "Located on a cliff on the north shore of the island of Kauai. Ocean view."
}
]
}
يطابق المستند 1 الاستعلام بشكل أفضل لأن كلا من المصطلح واسع والعبارة المطلوبة عرض المحيط يحدثان في حقل الوصف. تتطابق الوثيقتان التاليتان فقط مع عبارة عرض المحيط. قد يكون من المستغرب أن تكون درجة الصلة للمستندين 2 و 3 مختلفة على الرغم من أنها تتطابق مع الاستعلام بنفس الطريقة. ذلك لأن صيغة التسجيل تحتوي على مكونات أكثر من مجرد TF / IDF. في هذه الحالة، تم تعيين درجة أعلى قليلا للمستند 3 لأن وصفه أقصر. تعرف على صيغة لوسين العملية لتسجيل النقاط لفهم كيف يمكن أن يؤثر طول الحقل والعوامل الأخرى على درجة الأهمية.
تساهم بعض أنواع الاستعلامات (أحرف البدل والبادئة وregex) دائما بدرجة ثابتة في النتيجة الإجمالية للمستند. يسمح هذا بتضمين التطابقات التي تم العثور عليها من خلال توسيع الاستعلام في النتائج، ولكن دون التأثير على الترتيب.
مثال يوضح سبب أهمية ذلك. عمليات البحث عن أحرف البدل، بما في ذلك عمليات البحث عن البادئات، غامضة بحكم تعريفها لأن الإدخال عبارة عن سلسلة جزئية ذات تطابقات محتملة على عدد كبير جدا من المصطلحات المتباينة (ضع في اعتبارك إدخال "tour*"، مع وجود تطابقات في "الجولات" و"tourettes" و"التورمالين"). وبالنظر إلى طبيعة هذه النتائج، لا توجد طريقة للاستنتاج المعقول بالمصطلحات الأكثر قيمة من غيرها. لهذا السبب، نتجاهل ترددات المصطلحات عندما يؤدي تسجيل النتائج إلى استعلامات لأنواع أحرف البدل والبادئة و regex. في طلب بحث متعدد الأجزاء يتضمن مصطلحات جزئية وكاملة، يتم دمج النتائج الناتجة عن الإدخال الجزئي مع درجة ثابتة لتجنب التحيز نحو التطابقات غير المتوقعة المحتملة.
ضبط النقاط
هناك طريقتان لضبط درجات الصلة في البحث المعرفي في Azure:
- تروج ملفات تعريف تسجيل النقاط للمستندات في قائمة النتائج المرتبة استنادا إلى مجموعة من القواعد. في مثالنا، يمكننا اعتبار المستندات المتطابقة في حقل العنوان أكثر ملاءمة من المستندات المتطابقة في حقل الوصف. بالإضافة إلى ذلك، إذا كان فهرسنا يحتوي على حقل سعر لكل فندق، فيمكننا الترويج للمستندات ذات السعر المنخفض. تعرف على المزيد حول كيفية إضافة ملفات تعريف تسجيل النقاط إلى فهرس بحث.
- يوفر تعزيز المصطلح (متوفر فقط في بناء جملة استعلام Lucene الكامل) عامل تشغيل
^تعزيز يمكن تطبيقه على أي جزء من شجرة الاستعلام. في مثالنا، بدلا من البحث عن البادئة تكييف الهواء*، يمكن للمرء البحث إما عن المصطلح الدقيق تكييف الهواء أو البادئة، ولكن يتم تصنيف المستندات التي تتطابق مع المصطلح الدقيق أعلى من خلال تطبيق دفعة على مصطلح الاستعلام: تكييف الهواء^ 2|| تكييف الهواء*. تعرف على المزيد حول تعزيز المدة.
التسجيل في فهرس موزع
يتم تقسيم جميع الفهارس في Azure Cognitive Search تلقائيا إلى شظايا متعددة، مما يسمح لنا بتوزيع الفهرس بسرعة بين عقد متعددة أثناء توسيع نطاق الخدمة أو تقليصها. عند إصدار طلب بحث، يتم إصداره مقابل كل شظية بشكل مستقل. ثم يتم دمج النتائج من كل شظية وترتيبها حسب النتيجة (إذا لم يتم تعريف أي ترتيب آخر). من المهم أن تعرف أن دالة تسجيل النقاط تزن تردد مصطلح الاستعلام مقابل تردد المستند العكسي في جميع المستندات داخل الشظية ، وليس عبر جميع الشظايا!
وهذا يعني أن درجة الصلة يمكن أن تكون مختلفة بالنسبة للوثائق المتطابقة إذا كانت موجودة على شظايا مختلفة. لحسن الحظ ، تميل هذه الاختلافات إلى الاختفاء مع نمو عدد المستندات في الفهرس بسبب توزيع المدى الأكثر توازنا. ليس من الممكن افتراض أي شظية سيتم وضع أي مستند معين عليها. ومع ذلك ، على افتراض أن مفتاح المستند لا يتغير ، تعيينه دائما إلى نفس الشظية.
بشكل عام ، لا تعد درجة المستند هي أفضل سمة لطلب المستندات إذا كان استقرار الطلب مهما. على سبيل المثال، بالنظر إلى مستندين بنتيجة متطابقة، لا يوجد ضمان لظهور أحدهما أولا في عمليات التشغيل اللاحقة لنفس الاستعلام. يجب أن تعطي درجة المستند فقط إحساسا عاما بأهمية المستند بالنسبة للمستندات الأخرى في مجموعة النتائج.
الختام
أدى نجاح محركات البحث على الإنترنت إلى زيادة التوقعات للبحث عن النص الكامل على البيانات الخاصة. بالنسبة لأي نوع من تجارب البحث تقريبا ، نتوقع الآن أن يفهم المحرك نيتنا ، حتى عندما تكون المصطلحات خاطئة إملائيا أو غير مكتملة. قد نتوقع حتى تطابقات بناء على مصطلحات أو مرادفات مكافئة تقريبا لم نحددها في الواقع.
من وجهة نظر تقنية، يعد البحث عن النص الكامل معقدا للغاية، ويتطلب تحليلا لغويا متطورا ونهجا منهجيا للمعالجة بطرق تقطير مصطلحات الاستعلام وتوسيعها وتحويلها لتقديم نتيجة ذات صلة. بالنظر إلى التعقيدات المتأصلة ، هناك الكثير من العوامل التي يمكن أن تؤثر على نتيجة الاستعلام. لهذا السبب ، فإن استثمار الوقت لفهم آليات البحث عن النص الكامل يوفر فوائد ملموسة عند محاولة العمل من خلال نتائج غير متوقعة.
استكشفت هذه المقالة البحث عن النص الكامل في سياق البحث المعرفي في Azure. نأمل أن يمنحك خلفية كافية للتعرف على الأسباب والقرارات المحتملة لمعالجة مشاكل الاستعلام الشائعة.
الخطوات التالية
قم بإنشاء نموذج الفهرس وجرب استعلامات مختلفة وراجع النتائج. للحصول على الإرشادات، راجع إنشاء فهرس والاستعلام عنه في البوابة الإلكترونية.
جرب بناء جملة استعلام إضافي من قسم مثال مستندات البحث أو من بناء جملة استعلام بسيط في مستكشف البحث في البوابة الإلكترونية.
راجع ملفات تعريف تسجيل النقاط إذا كنت ترغب في ضبط الترتيب في تطبيق البحث الخاص بك.
تعرف على كيفية تطبيق أجهزة التحليل المعجمي الخاصة باللغة.
قم بتكوين أجهزة التحليل المخصصة إما للحد الأدنى من المعالجة أو المعالجة المتخصصة في حقول محددة.