تعيين مخرجات الإثراء إلى الحقول في فهرس البحث

في هذه المقالة، ستتعرف على كيفية تعيين حقول الإدخال المخصب إلى حقول الإخراج في فهرس قابل للبحث. بمجرد تحديد مجموعة مهارات، يجب عليك تعيين حقول المخرجات لأي مهارة تساهم بشكل مباشر بقيم في حقل معين في فهرس البحث.
تعيينات حقل المخرجات مطلوبة لنقل المحتوى من المستندات المحدثة إلى الفهرس. المستند المخصب هو في الواقع شجرة معلومات ، وعلى الرغم من وجود دعم للأنواع المعقدة في الفهرس ، فقد ترغب في بعض الأحيان في تحويل المعلومات من الشجرة المخصبة إلى نوع أكثر بساطة (على سبيل المثال ، مجموعة من السلاسل). تسمح لك تعيينات حقل المخرجات بإجراء تحويلات شكل البيانات عن طريق تسوية المعلومات. تحدث تعيينات حقل المخرجات دائما بعد تنفيذ مجموعة المهارات ، على الرغم من أنه من الممكن تشغيل هذه المرحلة حتى لو لم يتم تعريف مجموعة المهارات.
أمثلة على تعيينات حقول المخرجات:
كجزء من مجموعة المهارات الخاصة بك ، قمت باستخراج أسماء المنظمات المذكورة في كل صفحة من صفحات المستند الخاص بك. الآن تريد تعيين كل اسم من أسماء المؤسسات هذه في حقل في فهرسك من النوع Edm.Collection(Edm.String).
كجزء من مجموعة المهارات الخاصة بك ، أنتجت عقدة جديدة تسمى "المستند / translated_text". ترغب في تعيين المعلومات الموجودة على هذه العقدة إلى حقل معين في الفهرس الخاص بك.
ليس لديك مجموعة مهارات ولكنك تقوم بفهرسة نوع معقد من قاعدة بيانات Cosmos DB. ترغب في الوصول إلى عقدة على هذا النوع المعقد وتعيينها في حقل في الفهرس الخاص بك.
ملاحظة
تنطبق تعيينات حقول المخرجات على فهارس البحث فقط. بالنسبة للمفهرسين الذين ينشئون مخازن المعرفة، يتم تجاهل تعيينات حقول المخرجات.
استخدام المخرجاتتعيينات الحقول
لتعيين الحقول، أضف outputFieldMappings إلى تعريف المفهرس كما هو موضح أدناه:
PUT https://[servicename].search.windows.net/indexers/[indexer name]?api-version=2020-06-30
api-key: [admin key]
Content-Type: application/json
ويتألف نص الطلب على النحو التالي:
{
"name": "myIndexer",
"dataSourceName": "myDataSource",
"targetIndexName": "myIndex",
"skillsetName": "myFirstSkillSet",
"fieldMappings": [
{
"sourceFieldName": "metadata_storage_path",
"targetFieldName": "id",
"mappingFunction": {
"name": "base64Encode"
}
}
],
"outputFieldMappings": [
{
"sourceFieldName": "/document/content/organizations/*/description",
"targetFieldName": "descriptions",
"mappingFunction": {
"name": "base64Decode"
}
},
{
"sourceFieldName": "/document/content/organizations",
"targetFieldName": "orgNames"
},
{
"sourceFieldName": "/document/content/sentiment",
"targetFieldName": "sentiment"
}
]
}
لكل تعيين حقل مخرجات، قم بتعيين موقع البيانات في شجرة المستند المختصرة (sourceFieldName)، واسم الحقل كما هو مشار إليه في الفهرس (targetFieldName). قم بتعيين أي دالات تعيين تحتاجها لتحويل محتوى حقل قبل تخزينه في الفهرس.
تسطيح المعلومات من أنواع معقدة
يمكن أن يمثل المسار في sourceFieldName عنصرا واحدا أو عناصر متعددة. في المثال أعلاه، يمثل قيمة رقمية واحدة، /document/content/sentiment بينما /document/content/organizations/*/description يمثل العديد من أوصاف المؤسسة.
في الحالات التي يوجد فيها عدة عناصر ، يتم "تسويتها" في صفيف يحتوي على كل عنصر من العناصر.
بشكل أكثر تحديدا ، على /document/content/organizations/*/description سبيل المثال ، ستبدو البيانات الموجودة في حقل الأوصاف وكأنها مجموعة مسطحة من الأوصاف قبل فهرستها:
["Microsoft is a company in Seattle","LinkedIn's office is in San Francisco"]
هذا مبدأ مهم ، لذلك سنقدم مثالا آخر. تخيل أن لديك مجموعة من الأنواع المعقدة كجزء من شجرة التخصيب. لنفترض أن هناك عضوا يسمى customEntities لديه مجموعة من الأنواع المعقدة مثل النوع الموضح أدناه.
"document/customEntities":
[
{
"name": "heart failure",
"matches": [
{
"text": "heart failure",
"offset": 10,
"length": 12,
"matchDistance": 0.0
}
]
},
{
"name": "morquio",
"matches": [
{
"text": "morquio",
"offset": 25,
"length": 7,
"matchDistance": 0.0
}
]
}
//...
]
لنفترض أن فهرسك يحتوي على حقل يسمى "أمراض" من النوع Collection (Edm.String) ، حيث ترغب في تخزين كل اسم من أسماء الكيانات.
يمكن القيام بذلك بسهولة باستخدام الرمز "*" ، على النحو التالي:
"outputFieldMappings": [
{
"sourceFieldName": "/document/customEntities/*/name",
"targetFieldName": "diseases"
}
]
ستقوم هذه العملية ببساطة "بتسوية" كل اسم من أسماء عناصر CustomEntities في مجموعة واحدة من السلاسل مثل هذا:
"diseases" : ["heart failure","morquio"]
الخطوات التالية
بمجرد تعيين الحقول المخصب إلى حقول قابلة للبحث، يمكنك تعيين سمات الحقول لكل حقل من الحقول القابلة للبحث كجزء من تعريف الفهرس.
لمزيد من المعلومات حول تعيين الحقول، راجع تعيينات الحقول في مفهرسات البحث المعرفي في Azure.