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 şemadaki 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" adlı aktör adı gibi bir dize, güven düzeyinin daha yüksek olmasını sağlar. Ş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.
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
veruntimegreaterthan
bu mülk için ayarlanmıştır. releaseDate
tarih özelliği, bir filmin sinemalarda yayınlandığı tarihi belirtir.releasedbefore
vereleasedafter
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:
before
veafter
operatörlerini kullanmak içinItemMetadata
alanındakiupdateTime
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.
Türü otomatik olarak algılamak için
ItemMetadata
içindekimimeType
alanını doldurun. "Aksiyon videoları" sorgusu, mime türüapplication/mp4
,application/mpeg4
,application/x-shockwave-flash
,video/
veapplication/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
veseverity
ö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ğeripriority
veyaseverity
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.