Optimum sorgu yorumlaması için bir şema yapılandırın

Cloud Search'ün sorgu yorumlama özelliği, kullanıcının sorgusundaki operatör ve filtreleri otomatik olarak yorumlar ve bu öğeleri, yapılandırılmış, operatör tabanlı bir sorguya dönüştürür. Sorgu yorumlamada, kullanıcı sorgusunun ne anlama geldiğini anlamak için şemada tanımlanan operatörler ve dizine eklenen belgeler kullanılır. Bu özellik, kullanıcıların minimum anahtar kelimelerle arama yapmasına ve ancak yine de kesin sonuçlar elde etmesine olanak tanır.

Kullanıcıya sunulan gerçek sonuçlar, sorgu yorumlamasının güvenine bağlıdır. Güven düzeyi, sorgu dizelerinin dizine eklenen dokümanlarda nerede görüneceği de dahil olmak üzere çeşitli faktörlere bağlıdır. "Tom Hanks"in adı gibi, actors adlı şema alanında sürekli olarak görünen bir dize, güvenin daha yüksek olmasını sağlar. Bir paragrafta şema alanı yerine aynı dizenin ("Tom Hanks") görünmesi, güvenin azalmasına neden olabilir. Güçlü bir güven olması durumunda, kullanıcıya yalnızca sorgu yorumlamadan elde edilen sonuçlar gösterilir. Güvenin daha zayıf olduğu durumlarda, sorgu yorumlamasından elde edilen sonuçlar normal anahtar kelime arama sonuçlarıyla karıştırılır.

Örnek sorgu yorumlaması

Filmlerle ilgili bilgiler içeren bir veri kaynağınız (ör. bir veritabanı) olduğunu varsayalım. Şekil 1'de örnek bir arama sorgusu ve bunun sonucunda ortaya çıkan yorum gösterilmektedir.

Sorgu yorumlamaya genel bakış
Şekil 1. Sorgu yorumlama

Bu örnek sorgu göz önüne alındığında, sorgu yorumlaması aşağıdakileri yapar:

  • Şemayı ayrıştırır ve veri kaynağındaki üst düzey nesnelerin objecttype:movies olarak sınıflandırıldığını belirler. Sorgu yorumlamasında artık sorgudaki "filmler"in bir nesne türü olduğu bilinmektedir.

  • "action" dizesinin nerede gerçekleştiğini belirlemek için veri kaynağındaki dokümanları şemayla birlikte tarar. Dize öncelikli olarak belirli bir "tür" veri kaynağı alanında gerçekleşiyorsa sorgu yorumlaması, şemada tanımlandığı gibi "eylem" özelliğinin "tür" özelliği için bir özellik değeri olduğuna güvenir. Dize öncelikle içerik paragrafları bağlamında geçiyorsa sorgu yorumlamasının güven düzeyi düşer.

Sonuçta ortaya çıkan sorgu yorumlaması şu şekilde olur:

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

Sorgu yorumlama, tüm Cloud Search müşterileri için hiçbir ek işlem gerekmeden otomatik olarak etkinleştirilir. Ancak en iyi sorgu yorumu için şemanızı bu belgedeki talimatlara göre yapılandırmanız gerekir.

Şemanızı sorgu yorumlamayı destekleyecek şekilde yapılandırın

Şemanızı sorgu yorumlamadan faydalanabileceğiniz şekilde yapılandırmalısınız.

Görünen ad yorumlamalarını etkinleştir

Cloud Search'ün sorgu yorumlama sistemi, kullanıcının sorgusunu yorumlamak ve sonuçları ayarlamak için bir şema içinde objectDefinitions ve propertyDefinitions özelliklerini kullanır. Bu şema öğelerinin avantajını en üst düzeye çıkarmak amacıyla, özellik adları için displayLabel, nesne adları için objectDisplayLabel ve operatörler için operatorName öğelerini kullanarak pratik görünen adlar oluşturmanız gerekir.

Aşağıdaki şemada, bir film nesnesi için sezgisel görünen adlar gösterilmektedir:

{
  "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"
        }
      },
      ...
      ]
    }
  ]
}

Önceki örnekte:

  • Film nesnesi tanımında "Film" objectDisplayLabel simgesi vardır.

  • Tür mülk tanımı bir "tür" operatorName ve bir "Kategori" displayLabel içerir.

Bu görünen adlar, Cloud Search'ün aşağıdaki sorguları yorumlamasını sağlar:

  • "aksiyon filmleri", "tür aksiyon türündeki filmler" veya "film türü aksiyon", genre:action object:movies olarak yorumlanır.
  • "aksiyon veya gerilim türündeki filmler", objecttype:movies genre:(action OR thriller) olarak yorumlanır.
  • "aksiyon filmi" veya "aksiyon filmleri" genre:action objecttype:movies olarak yorumlanır.
  • "komedi kategorisi filmleri" genre:comedy objecttype:movies olarak yorumlanır.

Tarih, sayısal ve sıralama yorumlamalarını etkinleştirme

Tüm tarih ve sayısal özellikler için IntegerOperatorOptions içinde belirtilen lessThanOperatorName ve greaterThanOperatorName değerlerini tanımlamanız gerekir. Bu ayarlar, otomatik tarih ve sayısal yorumları etkinleştirir. Buna ek olarak, sıralama yorumlarını etkinleştirmek amacıyla tarih ve sayısal özellikler için isSortable seçeneğini belirleyin. Aşağıdaki şemada, bu seçeneklerin nasıl etkinleştirileceği gösterilmektedir.

{
  "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"
            }
          }
        }
      ]
    }
  ]
}

Önceki örnekte:

  • runtime sayısal özelliği, bir filmin uzunluğunu ifade eder. Bu mülk için runtimelessthan ve runtimegreaterthan ayarlandı.
  • releaseDate tarih özelliği, bir filmin sinemalarda gösterime girdiği zamanı belirtir. Bu mülk için releasedbefore ve releasedafter ayarlandı.

Bu ayarlar, Cloud Search'ün aşağıdaki sorgu yorumlamalarını yapmasını sağlar:

  • 2019 yılında gösterime giren "bu yıl yayınlanan filmler", objecttype: movies releasedafter:2019-1-1 releasedbefore:2019-12-31 olarak yorumlanır.
  • Haftanın Mart ayının üçüncü haftası olduğu düşünülürse "geçen hafta yayınlanan filmler" objecttype: movies releasedafter:2019-3-10 releasedbefore:2019-3-16 olarak yorumlanır.
  • "çalışma zamanı 90'dan az olan filmler" objjecttype: movies runtimelessthan:90 olarak yorumlanır.
  • 2019 olduğunu varsayarsak "bu yıl yayınlanan ve uzunluğu 120'den fazla olan filmler" releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120 olarak yorumlanır.
  • "filmleri yayın tarihine göre sırala" seçeneği, "objecttype: filmler" için filtre uygular ve sunulan sonuçlar, varsayılan sıralama düzeni artan düzende, yayınlanma tarihine göre sıralanır.

Ayrılmış operatör yorumlamasını etkinleştir

Sorgu yorumlamayı iyileştirmek için type, before, after ve objecttype ayrılmış yerleşik operatörleri de kullanabilirsiniz. Bir dokümanı dizine eklerken aşağıdakileri yapın:

  1. before ve after operatörlerini kullanmak için ItemMetadata bölümündeki updateTime alanını doldurun. Bu ayarlar, Cloud Search'ün aşağıdaki sorgu yorumlamalarını yapmasını sağlar:

    • "geçen haftadaki filmler" bölümünde, dizinde bir önceki hafta güncellenen tüm filmler listelenir.
    • "Ocak 2019'dan önceki filmler" bölümünde Ocak 2019'dan önce dizine eklenen tüm filmler listelenir.
  2. Türün otomatik olarak algılanmasını kullanmak için ItemMetadata içindeki mimeType alanını doldurun. "Aksiyon videoları" sorgusu, tüm aksiyon filmi belgelerini application/mp4, application/mpeg4, application/x-shockwave-flash, video/ ve application/vnd.google-apps.video mime türünde listeler.

Sorgu yorumlama sınırlamaları

Sorgu yorumlama özelliğinde aşağıdaki sınırlamalar vardır.

  • Sorgu yorumlama yalnızca şu veri kaynağı EKL'leri için çalışır:
    • Tüm dokümanlar herkese açıktır (alan adındaki herkes erişebilir).
    • Tüm dokümanlar veri kaynağı herkese açıktır (veri kaynağı EKL'ye erişimi olan herkes).
    • Veri kaynağındaki dokümanların büyük çoğunluğu aynı EKL'ye sahip (tüm dokümanlar aynı kapsayıcı öğesindeki EKL'yi devralır) ek okuyucu tanımlanmadan.
  • Birden çok şema operatörü aynı değere sahipse bu değerin bir sorgu için operatör amacına yorumlanması, sorgu yorumlama sisteminin döndürdüğü genel güven faktörüne bağlıdır. Örneğin, şemada aynı operatör adlarına sahip priority ve severity özelliklerinin olduğunu varsayalım. Her iki operatörün de 0, 1, 2 veya 3 değerine sahip olabileceğini varsayalım. Bu örnekte, bir sorgudaki "0" değeri priority veya severity operatör değerini ifade edebilir. Bu değerler belirsizdir ve güven düzeyi daha düşüktür.
  • Varsayılan olarak Cloud Search'ün sorgu yorumlama özelliği, sorguyu yorumlarken exactMatchWithOperator seçenekleriyle tanımlanan metin operatörleri hariç alan değerlerinin küçük/küçük harf kullanımını azaltır.
  • source operatörü sorgularda desteklenmez.
  • Operatör tabanlı terimleri ve serbest metin terimlerini birleştiren sorgular yorumlanmaz. Örneğin, "p0 öncelikli vakaların önem derecesi:s0" sorgusu, "p0 öncelikli vakalar" serbest metin terimiyken "önem derecesi:s0" operatör tabanlı bir terim olduğu için desteklenmez.
  • Sorgu yorumlama stratejisi, yorumlanan sonuçları her zaman sıradan (yorumlanmamış, alaka düzeyi sıralamalı) sonuçlarla harmanlar. Sonuçların tam sayfa değişimi yapmaz.