Optimum sorgu yorumu için şema oluşturma

Cloud Search'ün sorgu yorumlama özelliği, kullanıcının sorgusundaki operatörleri ve filtreleri otomatik olarak yorumlar ve bu öğeleri yapılandırılmış, operatör tabanlı bir sorguya dönüştürür. Sorgu yorumlama, kullanıcının sorgusunun ne anlama geldiğini anlamak için şemada tanımlanan operatörleri ve dizine eklenmiş dokümanları kullanır. Bu özellik, kullanıcının minimum anahtar kelimeyle arama yapmasına rağmen yine de doğru sonuçlar elde etmesini sağlar.

Kullanıcıya sunulan gerçek sonuçlar, sorgu yorumunun güven düzeyine bağlıdır. Güven, sorgu dizelerinin dizine eklenmiş dokümanlarda göründüğü yer de dahil olmak üzere çeşitli faktörlere dayanır. actors adlı bir şema alanında tutarlı bir şekilde görünen bir dize (ör. "Tom Hanks" adlı oyuncunun adı) daha yüksek güven düzeyiyle sonuçlanır. Şema alanında değil de bir paragrafta görünen aynı dize ("Tom Hanks"), güven düzeyinin düşmesine neden olabilir. Yüksek güven durumunda, kullanıcıya yalnızca sorgu yorumlamadan elde edilen sonuçlar gösterilir. Daha düşük güven durumunda, sorgu yorumlamasından elde edilen sonuçlar normal anahtar kelime arama sonuçlarıyla karıştırılır.

Örnek sorgu yorumu

Filmler hakkında bilgiler içeren bir veri kaynağınız (ör. veritabanı) olduğunu varsayalım. Şekil 1'de örnek bir arama sorgusu ve sonuçtaki yorum gösterilmektedir.

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

Bu örnek sorgu göz önüne alındığında, sorgu yorumlama özelliği şunları 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 yorumlama özelliği artık sorgudaki "filmler"in bir nesne türü olduğunu biliyor.

  • "İşlem" dizesinin nerede oluştuğunu belirlemek için veri kaynağındaki belgeleri şemayla birlikte tarar. Dize öncelikle belirli bir "tür" veri kaynağı alanında oluşuyorsa sorgu yorumlama, şemada tanımlandığı şekilde "aksiyon"un "tür" özelliği için bir özellik değeri olduğuna dair güvene sahiptir. Dize temel olarak içerik paragrafları bağlamında oluşuyorsa sorgu yorumunun güven düzeyi düşer.

Elde edilen sorgu yorumlaması:

  actor:tom hanks genre:action objecttype:movies

Sorgu yorumlama, tüm Cloud Search müşterileri için ek bir işlem yapılmasına gerek kalmadan otomatik olarak etkinleştirilir. Ancak sorguların en iyi şekilde yorumlanması için şemanızı bu belgedeki talimatlara göre yapılandırmanız gerekir.

Şemanızı sorgu yorumlamayı destekleyecek şekilde yapılandırma

Sorgu yorumlamadan yararlanabilmek için şemanızı yapılandırmanız gerekir.

Görünen ad yorumlarını etkinleştirme

Cloud Search'ün sorgu yorumlama özelliği, kullanıcının sorgusunu yorumlamak ve sonuçları ayarlamak için şemada objectDefinitions ve propertyDefinitions kullanır. Bu şema öğelerinden en iyi şekilde yararlanmak için özellik adları için displayLabel, nesne adları için objectDisplayLabel ve operatörler için operatorName kullanarak sezgisel 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 var.

  • Tür özelliği tanımında "tür" operatorName ve "kategori" displayLabel bulunur.

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

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

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

IntegerOperatorOptions içinde belirtilen lessThanOperatorName ve greaterThanOperatorName özelliklerini tüm tarih ve sayısal özellikler için tanımlamanız gerekir. Bu ayarlar, tarih ve sayısal değerlerin otomatik olarak yorumlanmasını sağlar. Ayrıca, sıralama yorumlarını etkinleştirmek için tarih ve sayısal özelliklerde isSortable seçeneğini ayarlayın. 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:

  • Sayısal özellik runtime, filmin uzunluğunu ifade eder. runtimelessthan ve runtimegreaterthan bu mülk için ayarlanır.
  • Tarih özelliği releaseDate, filmin sinemalarda yayınlandığı tarihi ifade eder. releasedbefore ve releasedafter bu mülk için ayarlanır.

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

  • Yılın 2019 olduğu varsayıldığında "bu yıl yayınlanan filmler" ifadesi objecttype: movies releasedafter:2019-1-1 releasedbefore:2019-12-31 olarak yorumlanır.
  • Haftanın Mart ayının üçüncü haftası olduğu varsayıldığında, "geçen hafta yayınlanan filmler" objecttype: movies releasedafter:2019-3-10 releasedbefore:2019-3-16 olarak yorumlanır.
  • "90 dakikadan kısa süreli filmler" objjecttype: movies runtimelessthan:90 olarak yorumlanır.
  • Yılın 2019 olduğu varsayıldığında "Bu yıl yayınlanan ve 120 dakikadan uzun filmler" releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120 olarak yorumlanır.
  • "Filmleri yayınlanma tarihine göre sırala" sorgusu, "objecttype: movies" filtresini uygular ve sonuçlar, yayınlanma tarihine göre sıralanır. Varsayılan sıralama düzeni artan düzendir.

Ayrılmış operatör yorumunu etkinleştirme

Sorgu yorumunu iyileştirmek için type, before, after, objecttype ayrılmış yerleşik operatörlerini de kullanabilirsiniz. Bir belgeyi dizine eklerken şunları 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 yorumlarını yapmasını sağlar:

    • "Geçen haftanın filmleri" sorgusu, önceki hafta dizine eklenen tüm filmleri listeler.
    • "movies before jan 2019" (Ocak 2019'dan önce yayınlanan filmler) sorgusu, Ocak 2019'dan önce dizine eklenen tüm filmleri listeler.
  2. Türün otomatik olarak algılanmasını kullanmak için ItemMetadata bölümündeki mimeType alanını doldurun. "Aksiyon videoları" sorgusu, application/mp4, application/mpeg4, application/x-shockwave-flash, video/ ve application/vnd.google-apps.video MIME türüne sahip tüm aksiyon filmi dokümanlarını listeler.

Sorgu yorumlama sınırlamaları

Sorgu yorumlama özelliği aşağıdaki sınırlamalara sahiptir.

  • Sorgu yorumlama yalnızca şu veri kaynağı ACL'leri için çalışır:
    • Tüm dokümanlar alan herkese açık (alandaki herkes erişebilir) olmalıdır.
    • Tüm dokümanlar, veri kaynağına herkese açık olarak erişir (veri kaynağına erişimi olan herkes ACL).
    • Veri kaynağındaki dokümanların çoğunda aynı erişim kontrol listesi (tüm dokümanlar, erişim kontrol listesini aynı kapsayıcı öğeden devralır) bulunur ve ek okuyucu tanımlanmamıştır.
  • Birden fazla şema operatörü aynı değere sahipse bu değerin bir sorgu için operatör amacına yönelik yorumlanması, sorgu yorumlama sistemi tarafından döndürülen genel güven faktörüne bağlıdır. Örneğin, şemada tanımlanmış aynı operatör adlarına sahip priority ve severity özellikleriniz olduğunu varsayalım. Her iki operatörün de 0, 1, 2 veya 3 değerlerini alabileceğini varsayalım. Bu örnekte, bir sorgudaki "0" değeri priority veya severity için 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, exactMatchWithOperator seçenekleriyle tanımlanan metin operatörleri hariç olmak üzere, sorguyu yorumlarken alan değerlerinin büyük/küçük harf durumunu düşürür.
  • source operatörü sorgularda desteklenmez.
  • Operatör tabanlı terimlerle serbest metin terimlerini birleştiren sorgular yorumlanmaz. Örneğin, "p0 priority cases severity:s0" sorgusu, "p0 priority cases" serbest metin terimi, "severity:s0" ise operatör tabanlı terim olduğundan desteklenmez.
  • Sorgu yorumlama stratejisi, yorumlanan sonuçları her zaman normal (yorumlanmamış, alaka düzeyine göre sıralanmış) sonuçlarla karıştırır. Sonuçların tamamını değiştirmez.