یک طرح واره برای تفسیر بهینه پرس و جو ساختار دهید

ویژگی تفسیر پرس‌وجو در Cloud Search به طور خودکار عملگرها و فیلترهای موجود در پرس‌وجوی کاربر را تفسیر می‌کند و آن عناصر را به یک پرس‌وجوی ساختاریافته و مبتنی بر عملگر تبدیل می‌کند. تفسیر پرس‌وجو از عملگرهای تعریف‌شده در طرحواره، همراه با اسناد فهرست‌شده، برای استنباط معنای پرس‌وجوی کاربر استفاده می‌کند. این ویژگی به کاربر اجازه می‌دهد تا با حداقل کلمات کلیدی جستجو کند، اما همچنان نتایج دقیقی به دست آورد.

نتایج واقعی ارائه شده به کاربر به میزان اطمینان تفسیر پرس‌وجو بستگی دارد. میزان اطمینان بر اساس عوامل مختلفی است، از جمله محل نمایش رشته‌های پرس‌وجو در اسناد نمایه‌شده. رشته‌ای، مانند نام بازیگر «تام هنکس»، که به طور مداوم در یک فیلد طرحواره به نام actors ظاهر می‌شود، منجر به اطمینان بالاتری می‌شود. همان رشته («تام هنکس») که در یک پاراگراف، به جای فیلد طرحواره، ظاهر می‌شود، می‌تواند منجر به اطمینان کمتری شود. در صورت اطمینان قوی، فقط نتایج تفسیر پرس‌وجو به کاربر نمایش داده می‌شود. در صورت اطمینان ضعیف‌تر، نتایج تفسیر پرس‌وجو با نتایج جستجوی کلمات کلیدی معمولی ترکیب می‌شوند.

تفسیر پرس و جو به عنوان مثال

فرض کنید یک منبع داده، مانند یک پایگاه داده، دارید که حاوی اطلاعاتی در مورد فیلم‌ها است. شکل 1 یک نمونه پرس‌وجوی جستجو و تفسیر نتیجه آن را نشان می‌دهد.

مروری بر تفسیر پرس‌وجو
شکل ۱. تفسیر پرس‌وجو

با توجه به این مثال از پرس‌وجو، تفسیر پرس‌وجو موارد زیر را انجام می‌دهد:

  • طرحواره را تجزیه می‌کند و تعیین می‌کند که اشیاء سطح بالا در منبع داده به عنوان objecttype:movies طبقه‌بندی می‌شوند. تفسیر پرس‌وجو اکنون می‌داند که "movies" در پرس‌وجو یک نوع شیء است.

  • اسناد موجود در منبع داده را، همراه با طرحواره، اسکن می‌کند تا مشخص کند رشته "action" در کجا رخ می‌دهد. اگر رشته در درجه اول در یک فیلد خاص منبع داده "genre" رخ دهد، آنگاه تفسیر پرس‌وجو اطمینان دارد که "action" یک مقدار ویژگی برای ویژگی "genre" است که در طرحواره تعریف شده است. اگر رشته در درجه اول در متن پاراگراف‌های محتوا رخ دهد، آنگاه سطح اطمینان تفسیر پرس‌وجو کاهش می‌یابد.

تفسیر پرس و جوی حاصل به صورت زیر است:

  actor:tom hanks genre:action objecttype:movies

تفسیر پرس‌وجو به‌طور خودکار برای همه مشتریان Cloud Search بدون هیچ کار اضافی فعال می‌شود. با این حال، برای تفسیر بهینه پرس‌وجو، باید طرحواره خود را طبق دستورالعمل‌های این سند ساختاردهی کنید.

طرحواره خود را برای پشتیبانی از تفسیر پرس و جو ساختار دهید

شما باید طرحواره خود را طوری ساختار دهید که بتوانید از تفسیر پرس‌وجو بهره‌مند شوید.

فعال کردن تفسیر نام نمایشی

تفسیر پرس‌وجوی Cloud Search از objectDefinitions و propertyDefinitions در یک طرحواره برای تفسیر پرس‌وجوی کاربر و تنظیم نتایج استفاده می‌کند. برای به حداکثر رساندن مزایای این عناصر طرحواره، باید نام‌های نمایشی بصری با استفاده از displayLabel برای نام‌های ویژگی، objectDisplayLabel برای نام‌های شیء و operatorName برای اپراتورها ایجاد کنید.

طرحواره زیر نام‌های نمایشی شهودی برای یک شیء فیلم را نشان می‌دهد:

{
  "objectDefinitions": [
    {
      "name": "movie",
        "options": {
          "displayOptions": {
          "objectDisplayLabel": "Films"
        }
        ...
      },
      "propertyDefinitions": [
        {
          "name": "genre",
          "isReturnable": true,
          "isRepeatable": true,
          "isFacetable": true,
          "textPropertyOptions": {
          "retrievalImportance": { "importance": "HIGHEST" },
          "operatorOptions": {
            "operatorName": "genre"
          }
        },
        "displayOptions": {
          "displayLabel": "Category"
        }
      },
      ...
      ]
    }
  ]
}

در مثال قبلی:

  • تعریف شیء فیلم دارای یک objectDisplayLabel نوع «فیلم» است.

  • ویژگی ژانرDefinition دارای یک operatorName نام "genre" و یک displayLabel نام "Category" است.

این نام‌های نمایشی، Cloud Search را قادر می‌سازند تا تفسیرهای زیر از پرس‌وجو را انجام دهد:

  • «فیلم‌های اکشن»، «فیلم‌های ژانر اکشن» یا «فیلم‌های ژانر اکشن» به صورت genre:action object:movies تفسیر می‌شوند.
  • «فیلم‌هایی با ژانر اکشن یا تریلر» به صورت objecttype:movies genre:(action OR thriller) تفسیر می‌شود.
  • «فیلم اکشن» یا «فیلم‌های اکشن» به صورت genre:action objecttype:movies تفسیر می‌شود.
  • «فیلم‌های دسته کمدی» به صورت genre:comedy objecttype:movies تفسیر می‌شود.

فعال کردن تفسیر تاریخ، اعداد و مرتب‌سازی

شما باید lessThanOperatorName و greaterThanOperatorName را که در IntegerOperatorOptions مشخص شده‌اند، برای همه ویژگی‌های تاریخ و عددی تعریف کنید. این تنظیمات تفسیر خودکار تاریخ و عددی را فعال می‌کنند. علاوه بر این، برای فعال کردن تفسیر مرتب‌سازی، گزینه isSortable را برای ویژگی‌های تاریخ و عددی تنظیم کنید. طرح زیر نحوه فعال کردن این گزینه‌ها را نشان می‌دهد.

{
  "objectDefinitions": [
    {
      "options": {
        "displayOptions": {
          "objectDisplayLabel": "Films"
        }
      },
      "propertyDefinitions": [
        {
          "name": "runtime",
          "isReturnable": true,
          "isSortable": true,
          "integerPropertyOptions": {
            "orderedRanking": "DESCENDING",
            "minimumValue": {
              "value": 10
            },
            "maximumValue": {
              "value": 500
            },
            "operatorOptions": {
              "operatorName": "runtime",
              "lessThanOperatorName": "runtimelessthan",
              "greaterThanOperatorName": "runtimegreaterthan"
            }
          },
          "displayOptions": {
            "displayLabel": "Length"
          }
        },
        {
          "name": "releasedate",
          "isReturnable": true,
          "isSortable": true,
          "datePropertyOptions": {
            "operatorOptions": {
              "operatorName": "releasedate",
              "lessThanOperatorName": "releasedbefore",
              "greaterThanOperatorName": "releasedafter"
            }
          }
        }
      ]
    }
  ]
}

در مثال قبلی:

  • ویژگی عددی runtime به طول یک فیلم اشاره دارد. مقادیر runtimelessthan و runtimegreaterthan برای این ویژگی تنظیم شده است.
  • ویژگی تاریخ releaseDate به زمان اکران یک فیلم در سینماها اشاره دارد. releasedbefore و releasedafter برای این ویژگی تنظیم شده است.

این تنظیمات، Cloud Search را قادر می‌سازد تا تفسیرهای زیر از پرس‌وجوها را انجام دهد:

  • با فرض اینکه سال ۲۰۱۹ باشد، عبارت «فیلم‌های منتشر شده در این سال» به صورت objecttype: movies releasedafter:2019-1-1 releasedbefore:2019-12-31 .
  • با فرض اینکه هفته، هفته سوم ماه مارس باشد، عبارت «فیلم‌های منتشر شده در هفته گذشته» به عنوان objecttype: movies releasedafter:2019-3-10 releasedbefore:2019-3-16
  • «فیلم‌هایی با زمان اجرا کمتر از ۹۰» به صورت objjecttype: movies runtimelessthan:90 تفسیر می‌شود.
  • با فرض اینکه سال ۲۰۱۹ باشد، عبارت «فیلم‌هایی که امسال منتشر شده‌اند و طول آنها بیش از ۱۲۰ است» به صورت releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120 تفسیر می‌شود.
  • «مرتب‌سازی فیلم‌ها بر اساس تاریخ انتشار» بر اساس «نوع شیء: فیلم‌ها» فیلتر می‌شود و نتایج ارائه شده بر اساس تاریخ انتشار مرتب می‌شوند و ترتیب مرتب‌سازی پیش‌فرض صعودی است.

فعال کردن تفسیر عملگر رزرو شده

همچنین می‌توانید از عملگرهای داخلی رزرو شده type ، before ، after objecttype برای بهبود تفسیر پرس‌وجو استفاده کنید. هنگام فهرست‌بندی یک سند، موارد زیر را انجام دهید:

  1. فیلد updateTime را در ItemMetadata برای استفاده از عملگرهای before و after پر کنید. این تنظیمات Cloud Search را قادر می‌سازد تا تفسیرهای پرس‌وجوی زیر را انجام دهد:

    • عبارت «فیلم‌های هفته‌ی گذشته» تمام فیلم‌هایی را که در فهرست هفته‌ی قبل به‌روزرسانی شده‌اند، فهرست می‌کند.
    • عبارت «فیلم‌های قبل از ژانویه ۲۰۱۹» تمام فیلم‌هایی را که قبل از ژانویه ۲۰۱۹ ایندکس شده‌اند، فهرست می‌کند.
  2. فیلد mimeType را در ItemMetadata پر کنید تا از تشخیص خودکار نوع استفاده شود. یک عبارت جستجو "action videos" تمام اسناد فیلم اکشن را با نوع mime از application/mp4 ، application/mpeg4 ، application/x-shockwave-flash ، video/ و application/vnd.google-apps.video فهرست می‌کند.

محدودیت‌های تفسیر پرس‌وجو

ویژگی تفسیر پرس‌وجو محدودیت‌های زیر را دارد.

  • تفسیر پرس‌وجو فقط برای این ACLهای منبع داده کار می‌کند:
    • همه اسناد در دامنه عمومی هستند (همه افراد در دامنه می‌توانند به آنها دسترسی داشته باشند).
    • همه اسناد منبع داده عمومی هستند (هر کسی که به ACL منبع داده دسترسی دارد).
    • اکثر اسناد موجود در منبع داده دارای ACL یکسانی هستند (همه اسناد ACL را از یک آیتم کانتینر به ارث می‌برند) و هیچ خواننده اضافی تعریف نشده است.
  • اگر چندین عملگر طرحواره مقدار یکسانی داشته باشند، تفسیر آن مقدار برای یک عملگر برای یک پرس‌وجو به ضریب اطمینان کلی برگردانده شده توسط سیستم تفسیر پرس‌وجو بستگی دارد. برای مثال، فرض کنید ویژگی‌های priority و severity را با نام‌های عملگر یکسان تعریف شده در طرحواره دارید. فرض کنید هر دو عملگر می‌توانند مقادیر 0، 1، 2 یا 3 را داشته باشند. در این مثال، "0" در یک پرس‌وجو می‌تواند به مقدار عملگر برای priority یا severity اشاره کند. این مقادیر مبهم هستند و سطح اطمینان پایین‌تر است.
  • به طور پیش‌فرض، تفسیر پرس‌وجوی Cloud Search هنگام تفسیر پرس‌وجو، به جز آن دسته از عملگرهای متنی که با گزینه‌های exactMatchWithOperator تعریف شده‌اند، حروف کوچک و بزرگ مقادیر فیلد را کاهش می‌دهد.
  • عملگر source در پرس‌وجوها پشتیبانی نمی‌شود.
  • پرس‌وجوهایی که عبارات مبتنی بر عملگر و عبارات متنی آزاد را ترکیب می‌کنند، تفسیر نمی‌شوند. برای مثال، پرس‌وجوی "p0 priority cases severity:s0" پشتیبانی نمی‌شود زیرا "p0 priority cases" یک عبارت متنی آزاد است در حالی که "severity:s0" یک عبارت مبتنی بر عملگر است.
  • استراتژی تفسیر پرس‌وجو همیشه نتایج تفسیر شده را با نتایج معمولی (غیرتفسیر شده، رتبه‌بندی شده بر اساس ارتباط) ترکیب می‌کند. این استراتژی جایگزینی کامل صفحه نتایج را انجام نمی‌دهد.