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

Cloud Search'in sorgu yorumlama özelliği, kullanıcının sorgusundaki operatörleri ve filtreleri otomatik olarak yorumlar ve bu öğeleri yapılandırılmış, operatöre dayalı 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 dizine eklenen dokümanlarla birlikte kullanır. Bu özellik, kullanıcıların minimum anahtar kelimeyle arama yapmasına ve yine de doğru sonuçlar elde etmesine olanak tanır.

Kullanıcıya sunulan gerçek sonuçlar, sorgu yorumlamasının güvenilirliğine bağlıdır. Güven, sorgu dizelerinin dizine eklenen dokümanlarda göründüğü yerler dahil olmak üzere çeşitli faktörlere dayanır. actors adlı bir şema alanında tutarlı bir şekilde görünen "Tom Hanks" gibi bir dize, güven düzeyinin artmasına neden olur. Şema alanından ziyade bir paragraf içinde görünen aynı dize ("Tom Hanks"), güvenin düşmesine neden olabilir. Güven düzeyi yüksekse kullanıcıya yalnızca sorgu yorumlamasından elde edilen sonuçlar gösterilir. Güven düzeyi düşükse sorgu yorumlamasından elde edilen sonuçlar normal anahtar kelime arama sonuçlarıyla birleştirilir.

Örnek sorgu yorumlaması

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

Sorgu yorumlamasına genel bakış
Şekil 1. Sorgu yorumlaması

Bu örnek sorgu için 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 yorumu artık sorguda "movies" değerinin bir nesne türü olduğunu biliyor.

  • "İşlem" dizesinin nerede gerçekleştiğini belirlemek için veri kaynağındaki belgeleri şemayla birlikte tarar. Dize öncelikle belirli bir "genre" veri kaynağı alanında ortaya çıkıyorsa sorgu yorumu, "action" değerinin şemada tanımlandığı şekilde "genre" özelliğinin bir özellik değeri olduğuna dair güvene sahiptir. Dize temel olarak içerik paragrafları bağlamında ortaya çıkıyorsa sorgu yorumlamanın güven düzeyi düşer.

Elde edilen sorgu yorumlaması şu şekildedir:

  actor:tom hanks genre:action objecttype:movies

Sorgu yorumlama, ek işlem gerektirmeden tüm Cloud Search müşterileri için otomatik olarak etkinleştirilir. Ancak, optimum sorgu yorumlaması için şemanızı bu dokümandaki talimatlara göre yapılandırmanız gerekir.

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

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

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

Cloud Search'in sorgu yorumlama özelliği, kullanıcının sorgusunu yorumlamak ve sonuçları ayarlamak için bir şemada objectDefinitions ve propertyDefinitions öğelerini 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 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 sorgu yorumlarını yapmasını sağlar:

  • "aksiyon filmleri", "aksiyon türü filmler" veya "filmler aksiyon türü" 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 filmler" ifadesi genre:comedy objecttype:movies olarak yorumlanır.

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

Tüm tarih ve sayısal özellikler için IntegerOperatorOptions içinde belirtilen lessThanOperatorName ve greaterThanOperatorName öğelerini tanımlamanız gerekir. Bu ayarlar, otomatik tarih ve sayısal yorumları etkinleştirir. Ayrıca, sıralama yorumlarını etkinleştirmek için tarih ve sayısal özellikler için 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 runtime mülkü, bir filmin uzunluğunu ifade eder. runtimelessthan ve runtimegreaterthan bu mülk için ayarlanmıştır.
  • releaseDate tarih özelliği, bir filmin sinemalarda yayınlandığı tarihi belirtir. releasedbefore ve releasedafter bu mülk için ayarlanmıştı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 gösterime giren 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" ifadesi objecttype: movies releasedafter:2019-3-10 releasedbefore:2019-3-16 olarak yorumlanır.
  • "90 dakikadan kısa filmler" ifadesi objjecttype: movies runtimelessthan:90 olarak yorumlanır.
  • Yılın 2019 olduğu varsayıldığında, "bu yıl yayınlanan ve süresi 120'den uzun filmler" ifadesi releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120 olarak yorumlanır.
  • "Filmleri yayınlanma tarihine göre sırala" ifadesi, "objecttype: movies" filtresini uygular ve sunulan sonuçlar, varsayılan sıralama düzeni artan şekilde olacak şekilde yayınlanma tarihine göre sıralanır.

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

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

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

    • "Geçen haftaki filmler", önceki hafta dizine eklenen tüm filmleri listeler.
    • "movies before jan 2019" (Ocak 2019'dan önce filmler) ifadesi, Ocak 2019'dan önce dizine eklenen tüm filmleri listeler.
  2. Türü otomatik olarak algılamak için ItemMetadata içindeki mimeType alanını doldurun. "Aksiyon videoları" sorgusu, mime türü application/mp4, application/mpeg4, application/x-shockwave-flash, video/ ve application/vnd.google-apps.video olan tüm aksiyon filmi dokümanlarını listeler.

Sorgu yorumlama sınırlamaları

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

  • Sorgu yorumlaması yalnızca aşağıdaki veri kaynağı ACL'leri için çalışır:
    • Tüm dokümanlar alanda herkese açıktır (alandaki herkes erişebilir).
    • Tüm belgeler veri kaynağında herkese açıktır (veri kaynağı ACL'sine erişimi olan herkes).
    • Kaynak verideki dokümanların çoğu aynı ACL'ye sahiptir (tüm dokümanlar ACL'yi aynı kapsayıcı öğesinden devralır) ve ek okuyucu tanımlanmamıştır.
  • Birden fazla şema operatörünün değeri aynıysa bu değerin bir sorgu için operatör amacı olarak yorumlanması, sorgu yorumlama sistemi tarafından döndürülen genel güven faktörüne bağlıdır. Örneğin, şemada tanımlanan aynı operatör adlarına sahip priority ve severity özelliklerine sahip olduğunuzu varsayalım. Her iki operatörün de 0, 1, 2 veya 3 değerlerine sahip olabileceğini varsayalım. Bu örnekte, 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.
  • Cloud Search'ın varsayılan 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 kullanımını küçük harfe dönüştürür.
  • source operatörü sorgularda desteklenmez.
  • Operatör tabanlı terimleri ve serbest metin terimlerini birleştiren sorgular yorumlanmaz. Örneğin, "p0 öncelikli destek kayıtları önem:s0" sorgusu desteklenmez. Bunun nedeni, "p0 öncelikli destek kayıtları" serbest metin terimi iken "önem:s0" operatör tabanlı bir terim olmasıdır.
  • Sorgu yorumlama stratejisi, yorumlanmış sonuçları her zaman normal (yorumlanmamış, alaka düzeyine göre sıralanmış) sonuçlarla harmanlar. Sonuçlarda tam sayfa değişimi gerçekleştirmez.