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

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

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

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

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

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

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

  • از روی طرحواره تعیین می‌کند که اشیاء سطح بالا، objecttype:movies هستند.
  • اسناد را اسکن می‌کند تا محل وقوع «عمل» را شناسایی کند. اگر در درجه اول در یک فیلد genre ظاهر شود، اطمینان از اینکه یک مقدار ویژگی برای آن فیلد است، افزایش می‌یابد.

تفسیر حاصل این است: actor:"tom hanks" genre:action objecttype:movies

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

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

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

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

تفسیر پرس‌وجو از objectDefinitions و propertyDefinitions برای تفسیر پرس‌وجوها استفاده می‌کند. با استفاده displayLabel برای ویژگی‌ها، objectDisplayLabel برای اشیاء و operatorName برای عملگرها، نام‌های نمایشی شهودی ایجاد کنید.

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

{
  "objectDefinitions": [{
    "name": "movie",
    "options": {
      "displayOptions": { "objectDisplayLabel": "Films" }
    },
    "propertyDefinitions": [{
      "name": "genre",
      "isReturnable": true,
      "textPropertyOptions": {
        "operatorOptions": { "operatorName": "genre" }
      },
      "displayOptions": { "displayLabel": "Category" }
    }]
  }]
}

این نام‌های نمایشی، تفسیرهایی مانند موارد زیر را ممکن می‌سازند:

  • «فیلم‌های اکشن» -> genre:action object:movies
  • "فیلم‌هایی با ژانر اکشن یا مهیج" -> objecttype:movies genre:(action OR thriller)
  • "فیلم‌های دسته کمدی" -> genre:comedy objecttype:movies

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

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

این مثال این گزینه‌ها را فعال می‌کند:

{
  "objectDefinitions": [{
    "propertyDefinitions": [
      {
        "name": "runtime",
        "isSortable": true,
        "integerPropertyOptions": {
          "operatorOptions": {
            "operatorName": "runtime",
            "lessThanOperatorName": "runtimelessthan",
            "greaterThanOperatorName": "runtimegreaterthan"
          }
        }
      },
      {
        "name": "releasedate",
        "isSortable": true,
        "datePropertyOptions": {
          "operatorOptions": {
            "operatorName": "releasedate",
            "lessThanOperatorName": "releasedbefore",
            "greaterThanOperatorName": "releasedafter"
          }
        }
      }
    ]
  }]
}

این تنظیمات امکان تفسیرهایی مانند موارد زیر را فراهم می‌کنند:

  • "فیلم‌های منتشر شده در سال جاری" -> objecttype:movies releasedafter:2019-1-1 releasedbefore:2019-12-31
  • "فیلم‌هایی با زمان اجرا کمتر از ۹۰" -> objecttype:movies runtimelessthan:90

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

از عملگرهای داخلی مانند type ، before ، after و objecttype استفاده کنید:

  1. مقدار updateTime در ItemMetadata قرار دهید تا before و after استفاده شود.
  2. برای تشخیص خودکار mimeType در ItemMetadata پر کنید. برای مثال، "فیلم‌های اکشن" اسنادی را با انواع MIME ویدیویی فهرست می‌کند.

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

  • فقط برای این ACL های منبع داده کار می‌کند:
    • دامنه عمومی.
    • منبع داده‌ها عمومی.
    • اکثر اسناد، ACL ارثی یکسانی را به اشتراک می‌گذارند.
  • نام‌های عملگر مشترک (مثلاً priority و severity هر دو با استفاده از ۰-۳) اطمینان را کاهش می‌دهند.
  • به طور پیش‌فرض، تفسیر از حروف کوچک برای مقادیر فیلد استفاده می‌کند، مگر اینکه از exactMatchWithOperator استفاده کنید.
  • عملگر source پشتیبانی نمی‌شود.
  • عبارات ترکیبی عملگر و متن آزاد (مثلاً "p0 cases severity:s0") تفسیر نمی‌شوند.
  • نتایج همیشه با نتایج رتبه‌بندی‌شده بر اساس ارتباط ترکیب می‌شوند.