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

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ı sorgusunun ne anlama geldiğini anlamak için şemada tanımlanan operatörleri dizine eklenen belgelerle birlikte kullanır. Bu özellik, kullanıcıların çok az anahtar kelimeyle arama yapmasına ve yine de kesin sonuçlar elde etmesine olanak tanır.

Kullanıcıya sunulan gerçek sonuçlar, sorgu yorumlamanın güvenine bağlıdır. Güven düzeyi, sorgu dizelerinin dizine eklenen dokümanlarda nerede göründüğü de dahil olmak üzere çeşitli faktörlere bağlıdır. "Tom Hanks" aktörünün adı gibi actors adlı bir şema alanında tutarlı bir şekilde görünen bir dize daha yüksek güven sağlar. Bir paragrafta yer alan şema alanı yerine aynı dizenin ("Tom Hanks") gösterilmesi daha düşük güvene neden olabilir. Güçlü bir güven olması durumunda kullanıcıya yalnızca sorgu yorumlamadan elde edilen sonuçlar gösterilir. Güvenin düşük olduğu durumlarda, sorgu yorumlamadan elde edilen sonuçlar normal anahtar kelime arama sonuçlarıyla karıştırılır.

Örnek sorgu yorumlama

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

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

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

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

Elde edilen sorgu yorumlaması ise şu şekilde olur:

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

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

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

Şemanızı, sorgu yorumlamasından faydalanabileceğiniz şekilde yapılandırmanız gerekir.

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

Cloud Search'ün sorgu yorumlaması, kullanıcı sorgusunu yorumlamak ve sonuçları ayarlamak için şemada objectDefinitions ve propertyDefinitions'ten yararlanır. Bu şema öğelerinden en iyi şekilde yararlanmak amacıyla ö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 şema, bir film nesnesi için sezgisel görünen adları göstermektedir:

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

Yukarıdaki örnekte:

  • Film nesnesi tanımında "Film" objectDisplayLabel bulunuyor.

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

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

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

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

Tüm tarih ve sayısal özellikler için IntegerOperatorOptions ile 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 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"
            }
          }
        }
      ]
    }
  ]
}

Yukarıdaki ö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. releasedbefore ve releasedafter bu mülk için ayarlandı.

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

  • Yılın 2019 olduğu varsayıldığında, "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 varsayıldığında, "geçen hafta yayınlanan filmler" objecttype: movies releasedafter:2019-3-10 releasedbefore:2019-3-16 olarak yorumlanır
  • "Çalışma süresi 90'dan az olan filmler" objjecttype: movies runtimelessthan:90 olarak yorumlanır.
  • Yılın 2019 olduğu varsayıldığında, "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: movies" filtresiyle filtrelenir ve sunulan sonuçlar yayın tarihine göre, varsayılan sıralama ölçütü artan düzende sıralanır.

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

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

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

    • "geçen haftaki filmler" bölümünde, önceki hafta dizinde güncellenen tüm filmler listelenir.
    • "Ocak 2019'dan önceki filmler" Ocak 2019'dan önce dizine eklenen tüm filmleri listeler.
  2. Türün otomatik algılama özelliğini kullanmak için ItemMetadata içindeki 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ğı EKL'leri için çalışır:
    • Tüm dokümanlar herkese açıktır (alandaki herkes erişebilir).
    • Tüm dokümanların veri kaynağı herkese açıktır (veri kaynağı EKL'sine erişimi olan herkes).
    • Veri kaynağındaki dokümanların çoğunluğu aynı EKL'ye sahiptir (tüm dokümanlar aynı kapsayıcı öğesinden EKL'yi devralır) ek okuyucu tanımlanmaz.
  • Birden fazla şema operatörü aynı değere sahipse bu değerin bir sorguda operatör amacına yorumlanması, sorgu yorumlama sisteminin döndürdüğü genel güven faktörüne bağlıdır. Örneğin, şemada tanımlanan aynı operatör adlarına sahip priority ve severity mülklerinizin 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", 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 yorumlaması, 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ı azaltır.
  • source operatörü sorgularda desteklenmez.
  • Operatöre dayalı terimleri ve serbest metin terimlerini birleştiren sorgular yorumlanmaz. Örneğin, "p0 öncelikli vakalar önem derecesi:s0" olan sorgu, "p0 öncelikli vakalar" serbest metin terimi olduğundan "önem derecesi:s0" ise operatör tabanlı bir terim olduğundan desteklenmez.
  • Sorgu yorumlama stratejisi, yorumlanan sonuçları her zaman sıradan (yorumlanmamış, alaka düzeyine göre sıralanmış) sonuçlarla karıştırır. Sonuçları tam sayfa olarak değiştirmez.