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

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

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

تفسیر پرس و جو مثال

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

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

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

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

  • اسناد موجود در منبع داده را در ارتباط با طرحواره اسکن می کند تا تعیین کند رشته "عمل" در کجا رخ می دهد. اگر رشته عمدتاً در یک فیلد منبع داده «ژانر» خاص رخ دهد، تفسیر پرس و جو این اطمینان را دارد که «عمل» یک مقدار ویژگی برای ویژگی «ژانر» است که در طرحواره تعریف شده است. اگر رشته عمدتاً در زمینه پاراگراف های محتوا رخ دهد، سطح اطمینان تفسیر پرس و جو کاهش می یابد.

تفسیر پرس و جو حاصل این است:

  actor:“tom hanks” genre:action objecttype:movies

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

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

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

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

تفسیر پرس و جو 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 «ژانر» و یک «مقوله» displayLabel دارد.

این نام‌های نمایشی 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 را قادر می‌سازد تا تفسیرهای پرس و جوی زیر را انجام دهد:

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

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

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

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

    • «فیلم‌های هفته گذشته» همه فیلم‌هایی را که هفته قبل در فهرست به‌روزرسانی شده‌اند فهرست می‌کند.
    • «فیلم‌های قبل از ژانویه 2019» همه فیلم‌هایی را که قبل از ژانویه 2019 ایندکس شده‌اند فهرست می‌کند.
  2. برای استفاده از تشخیص خودکار نوع، فیلد mimeType در ItemMetadata پر کنید. درخواست «ویدیوهای اکشن» همه اسناد فیلم اکشن را با نوع 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 case severity:s0" پشتیبانی نمی شود زیرا "p0 priority case" یک عبارت متنی آزاد است در حالی که "severity:s0" یک عبارت مبتنی بر عملگر است.
  • استراتژی تفسیر پرس و جو همیشه نتایج تفسیر شده را با نتایج معمولی (تفسیر نشده، رتبه بندی شده) ترکیب می کند. این جایگزینی کامل صفحه نتایج را انجام نمی دهد.