Google Cloud Search şeması, nesneleri, özellikleri ve seçenekleri sunar. İçerik bağlayıcınız deponuzdaki verileri okur ve yapılandırıp dizine ekler.
API'ye JSON şema nesnesi sağlayarak bir şema oluşturabilirsiniz. kaydettirmektir. Bir şema nesnesi kaydetmeniz gerekiyor depoladığınızdan emin olmanız gerekir.
Bu dokümanda, şema oluşturma ile ilgili temel bilgiler yer almaktadır. Nasıl yapıldığını arama deneyimini iyileştirmek üzere şemanızı ayarlamak için Arama kalitesini iyileştirin.
Şema oluşturun
Aşağıda, Cloud Search şemanızı oluşturmak için kullanılan adımların bir listesi yer almaktadır:
- Beklenen kullanıcı davranışını belirleme
- Veri kaynağını başlatma
- Şema oluşturma
- Örnek şemayı tamamlama
- Şemanızı kaydetme
- Verilerinizi dizine ekleme
- Şemanızı test etme
- Şemanızı ayarlama
Beklenen kullanıcı davranışını belirleme
Kullanıcılarınızın göndereceği sorgu türlerini tahmin etmek, stratejinizi yönlendirmenize yardımcı olur. en iyi uygulamaları görelim.
Örneğin, bir film veritabanına göre sorgu yayınlarken "Kemal Aksoy'un başrolde olduğu tüm filmleri göster" gibi bir sorguda bulunur. Dolayısıyla şemanız, "şunları içeren tüm filmler: karar verebilirsiniz."
Şemanızı kullanıcınızın davranış kalıplarını yansıtacak şekilde tanımlamak için: şu görevleri gerçekleştirebilirsiniz:
- Farklı kullanıcılardan gelen çeşitli sorguları değerlendirme
- Sorgularda kullanılabilecek nesneleri tanımlayın. Nesneler mantıksal film veritabanındaki bir film gibi ilgili veri kümeleri.
- Nesneyi oluşturan ve olabilecek özellikleri ve değerleri tanımlayın anlamına gelir. Özellikler, nesnenin dizine eklenebilir özellikleridir; temel değerler veya başka nesneler içerebilir. Örneğin, bir film nesnesi filmin adı ve yayın tarihini temel değerler olarak kabul edin. Film nesnesi, başka karakterler de oyuncular gibi kendi özellikleri olan nesneler (örneğin, size yardımcı olur.
- Tesisler için geçerli değer örnekleri belirleyin. Değerler gerçek verilerdir bir mülk için dizine eklendi. Örneğin, veritabanınızdaki bir filmin başlığı "Lost Ark avcıları."
- Kullanıcılarınızın istediği sıralama ve sıralama seçeneklerini belirleyin. Örneğin, kullanıcılar filmleri sorgularken kronolojik olarak sıralama ve kullanıcı kitlesine göre derecelendirilir ve başlığa göre alfabetik olarak sıralanması gerekmez.
- (isteğe bağlı) Tesislerinizden birinin daha spesifik bir tesisi temsil edip etmediğini göz önünde bulundurun kullanıcıların arama sorguları gibi iş rolü veya verilere göre otomatik tamamlama önerilerinin sunulabilmesi için, bağlam. Örneğin, filmlerin bulunduğu bir veritabanında arama yapan kişiler için Belirli türdeki filmlerle ilgileniyorlarsa. Kullanıcılar, büyük olasılıkla kullanıcılarının bir parçası olarak aramalarının geri dönmesini istedikleri seçin. Ardından, bir kullanıcı film sorgusu yazmaya başladığında, sadece tercih ettikleri türdeki filmler (ör. "aksiyon filmleri") kullanılması önerilir: otomatik tamamlama önerilerinin bir bölümüdür.
- Gösterilebilecek bu nesnelerin, özelliklerin ve örnek değerlerin bir listesini kullanılır. (Bu listenin nasıl kullanıldığıyla ilgili ayrıntılar için Operatör seçeneklerini tanımlama bölümüne bakın.)
Veri kaynağınızı ilk kullanıma hazırlayın
Veri kaynağı, dizine eklenmiş bir depodaki verileri temsil eder Google Cloud'da depolanır. Bir veri kaynağını başlatma talimatları için referans Üçüncü taraf veri kaynaklarını yönetin.
Kullanıcının arama sonuçları veri kaynağından döndürülür. Kullanıcı, bir arama sonucunda; Cloud Search, Dizine ekleme isteğinde sağlanan URL.
Nesnelerinizi tanımlayın
Şemadaki verilerin temel birimi nesnedir ve "şema" olarak da adlandırılır. nesne" olarak tanımlanmıştır. Filmlerden oluşan bir veritabanında mantıksal yapı "film"dir. Başka bir nesne "kişi" olabilir - filmde yer alan oyuncu kadrosunu ve ekibi temsil eder.
Şemadaki her nesnenin bir dizi özellik veya özellik vardır. Bir filmin başlığı ve süresi ya da adı gibi, nesneyi açıklama ve doğum tarihini belirler. Bir nesnenin özellikleri temel öğe içerebilir değerler veya diğer nesnelerdir.
Şekil 1'de film ve kişi nesneleri ile ilişkili özellikler.
Cloud Search şeması
temel olarak bu şemada tanımlanan nesne tanımı ifadelerinin
objectDefinitions
etiketi. Aşağıdaki şema snippet'i,
film ve kişi şeması nesneleri için objectDefinitions
ifadeleri.
{
"objectDefinitions": [
{
"name": "movie",
...
},
{
"name": "person",
...
}
]
}
Bir şema nesnesi tanımladığınızda, nesne için bir name
sağlarsınız
şemadaki diğer tüm nesneler arasında benzersiz olmalıdır. Genellikle name
kullanırsınız
nesneyi tanımlayan movie
gibi bir değer girin. Şema
hizmeti, dizine eklenebilir nesneler için anahtar tanımlayıcısı olarak name
alanını kullanır. Örneğin,
name
alanı hakkında daha fazla bilgi için
Nesne Tanımı.
Nesne özelliklerini tanımlama
Şu referansta belirtildiği gibi:
ObjectDefinition ise
nesne adının ardından bir dizi
options
,
ve proje teslimatlarının
propertyDefinitions
.
İlgili içeriği oluşturmak için kullanılan
options
şunları yapabilir:
ayrıca
freshnessOptions
ve
displayOptions
.
İlgili içeriği oluşturmak için kullanılan
freshnessOptions
bir öğenin güncelliğine göre arama sıralamasını ayarlamak için kullanılır. İlgili içeriği oluşturmak için kullanılan
displayOptions
belirli etiketlerin ve özelliklerin
bir nesne için arama sonuçlarını gösterir.
İlgili içeriği oluşturmak için kullanılan
propertyDefinitions
bölümü, film başlığı gibi bir nesnenin özelliklerini tanımladığınız yerdir
ve yayın tarihidir.
Aşağıdaki snippet'te iki özelliği olan movie
nesnesi gösterilmektedir: movieTitle
ve releaseDate
.
{
"objectDefinitions": [
{
"name": "movie",
"propertyDefinitions": [
{
"name": "movieTitle",
"isReturnable": true,
"isWildcardSearchable": true,
"textPropertyOptions": {
"retrievalImportance": { "importance": "HIGHEST" },
"operatorOptions": {
"operatorName": "title"
}
},
"displayOptions": {
"displayLabel": "Title"
}
},
{
"name": "releaseDate",
"isReturnable": true,
"isSortable": true,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "released",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
},
"displayOptions": {
"displayLabel": "Release date"
}
...
]
}
]
}
İlgili içeriği oluşturmak için kullanılan PropertyDefinition aşağıdaki öğelerden oluşur:
name
dizesi.- Önceki bölümde yer alan
isReturnable
gibi, türden bağımsız seçeneklerin listesi snippet'i - Tür ve bu türle ilişkili türe özel seçenekler
Örneğin, önceki snippet'teki
textPropertyOptions
veretrievalImportance
gibi. - Mülkün nasıl kullanıldığını açıklayan
operatorOptions
arama operatörü. - Önceki snippet'teki
displayLabel
gibi bir veya daha fazladisplayOptions
.
Bir özelliğin name
öğesi, kapsayıcı nesne içinde benzersiz olmalıdır.
ancak aynı ad diğer nesnelerde ve alt nesnelerde kullanılabilir.
Şekil 1'de, filmin adı ve yayın tarihi iki kez tanımlanmıştır:
movie
nesnesinde bir kez ve tekrar filmography
alt nesnesinde
person
nesne. Bu şema, movieTitle
alanını yeniden kullanıyor
Böylece şema, iki tür arama davranışını destekleyebilir:
- Kullanıcılar bir filmin başlığını aradığında film sonuçlarını gösterin.
- Kullanıcılar bir filmin başlığını aradığında kişi sonuçlarını göster bir başka karakter var.
Benzer şekilde şema, aynı boyuta sahip olduğundan releaseDate
alanını yeniden kullanır.
iki movieTitle
alanının anlamını taşıyacaktır.
Kendi şemanızı geliştirirken deponuzun bununla nasıl bağlantılı olabileceğini düşünün alanları arasında olmalıdır.
Türden bağımsız seçenekler ekleme
İlgili içeriği oluşturmak için kullanılan PropertyDefinition tüm mülklerde ortak olarak kullanılan genel arama işlevi seçeneklerini listeler veri türünden bağımsız olarak ayarlamanızı sağlar.
isReturnable
- Mülkün olması gereken verileri tanımlayıp tanımlamadığını gösterir sorgu API'sı aracılığıyla arama sonuçlarında döndürülmüştür. Örnek filmlerin tümü özellikleri döndürülebilir. İade edilemez mülkler, arama için kullanılabilir kullanıcıya döndürülmeden sıralama yapmaktan ibaret değildir.isRepeatable
: Mülk için birden çok değere izin verilip verilmediğini gösterir. Örneğin, Örneğin, bir filmin yalnızca tek bir yayın tarihi vardır ancak birden fazla oyuncusu olabilir.isSortable
- Özelliğin sıralama için kullanılabileceğini belirtir. Bu değeri, tekrarlanabilir mülkler için doğru olamaz. Örneğin, film sonuçları yayın tarihine veya kitle puanına göre sıralanabilir.isFacetable
- Mülkün, özellikler oluşturmak için kullanılabileceğini belirtir. Façetalar, kullanıcının gördüğü arama sonuçlarını hassaslaştırmak için kullanılır. sonra bu sonuçları daha da hassaslaştırmak için ölçütler veya özellikler sonuç. Bu seçenek, türü nesne ve Bu seçeneği ayarlamak içinisReturnable
doğru olmalıdır. Son olarak, bu seçenek yalnızca enum, boole ve metin özelliklerinde desteklenir. Örneğin, örnek şemamızda Şunları yapmasına izin vermek içingenre
,actorName
,userRating
vempaaRating
façeli tablosu arama sonuçlarını etkileşimli olarak ayrıntılandırmak için kullanılır.isWildcardSearchable
, kullanıcıların şunlar için joker karakterle arama gerçekleştirebileceğini gösterir bu mülk. Bu seçenek yalnızca metin özelliklerinde kullanılabilir. Joker karakter Aramanın metin alanında çalışması, exactMatchWithOperator alanına olacaktır.exactMatchWithOperator
,true
olarak ayarlanırsa metin değeri bir atom değeri olarak belirtiliyor ve joker karakterle arama bir sonuç elde etmiş olabilir. Örneğin, metin değeriscience-fiction
isescience-*
joker karakter sorgusu bu sorguyla eşleşiyor.exactMatchWithOperator
false
ise, metin değeri tokenlere ayrılır ve her jeton. Örneğin, metin değeri "bilim kurgu" isesci*
veyafi*
sorguları öğeyle eşleşiyor ancakscience-*
eşleşmiyor.
Bu genel arama işlevi parametrelerinin tümü boole değerleridir; onlar
tümünün varsayılan değeri false
olmalı ve true
olarak ayarlanmalıdır
gerekiyor.
Aşağıdaki tabloda true
olarak ayarlanmış Boole parametreleri gösterilmektedir
movie
nesnesinin tüm özellikleri için:
Özellik | isReturnable |
isRepeatable |
isSortable |
isFacetable |
isWildcardSearchable |
---|---|---|---|---|---|
movieTitle |
true | true | |||
releaseDate |
true | true | |||
genre |
true | true | true | ||
duration |
true | ||||
actorName |
true | true | true | true | |
userRating |
true | true | |||
mpaaRating |
true | true |
isRepeatable
hem genre
hem de actorName
için true
olarak ayarlandı
çünkü bir film birden fazla türe ait olabilir ve genellikle
birden fazla oyuncu bulunur. Tekrarlanabilir özellikte sıralanamaz
alt nesne içinde barındırılmasını sağlar.
Türü tanımlayın
İlgili içeriği oluşturmak için kullanılan
PropertyDefinition
referans bölümünde birkaç xxPropertyOptions
listeleniyor; burada xx
belirli bir türdür,
(ör. boolean
). Mülkün veri türünü ayarlamak için aşağıdakileri tanımlamalısınız:
uygun veri türü nesnesidir. Bir mülk için veri türü nesnesi tanımlama
söz konusu mülkün veri türünü belirler. Örneğin,
movieTitle
özelliği için textPropertyOptions
, filmin durumunu belirtir
başlık metin türünde. Aşağıdaki snippet, movieTitle
özelliğini göstermektedir
Veri türünü textPropertyOptions
ayarlayarak devre dışı bırakabilirsiniz.
{
"name": "movieTitle",
"isReturnable": true,
"isWildcardSearchable": true,
"textPropertyOptions": {
...
},
...
},
Bir mülkte yalnızca bir ilişkilendirilmiş veri türü olabilir. Örneğin, bu içeriği
şemasında, releaseDate
yalnızca bir tarih (ör. 2016-01-13
) veya bir dize
(ör. January 13, 2016
), ancak her ikisi birden kullanılamaz.
Şunun için veri türlerini belirtmek üzere kullanılan veri türü nesneleri: şu özellikleri taşıdığını unutmayın:
Özellik | Veri türü nesnesi |
---|---|
movieTitle |
textPropertyOptions |
releaseDate |
datePropertyOptions |
genre |
enumPropertyOptions |
duration |
textPropertyOptions |
actorName |
textPropertyOptions |
userRating |
integerPropertyOptions |
mpaaRating |
textPropertyOptions |
Mülk için seçtiğiniz veri türü, beklenen kullanım alanlarınıza bağlıdır.
Bu film şemasının hayali senaryosunda, kullanıcıların
kronolojik olarak sıralamak isteyebilirsiniz. Bu durumda releaseDate
bir tarih nesnesidir.
Örneğin, Aralık ayı sürümlerinin karşılaştırılması için beklenen bir kullanım alanı varsa
200'den fazla gösterim alırsanız, dize biçimi faydalı olabilir.
Türe özel seçenekleri yapılandırma
İlgili içeriği oluşturmak için kullanılan
PropertyDefinition
referans bölümü, her bir türe ilişkin seçeneklerin bağlantılarını içerir. En türe özgü
seçenekleri isteğe bağlıdır, ancak possibleValues
enumPropertyOptions
. Ayrıca orderedRanking
seçeneği şunları yapmanıza olanak sağlar:
değerleri sıraya sokmaktır. İlgili içeriği oluşturmak için kullanılan
aşağıdaki snippet, textPropertyOptions
özelliğine sahip movieTitle
mülkünü gösterir
ve retrievalImportance
türüne özel seçeneğini kullanarak veri türünü ayarlayın.
{
"name": "movieTitle",
"isReturnable": true,
"isWildcardSearchable": true,
"textPropertyOptions": {
"retrievalImportance": { "importance": "HIGHEST" },
...
},
...
}
Örnek şemada kullanılan, türe özgü ek seçenekler şunlardır:
Özellik | Tür | Türe özel seçenekler |
---|---|---|
movieTitle |
textPropertyOptions |
retrievalImportance |
releaseDate |
datePropertyOptions |
|
genre |
enumPropertyOptions |
|
duration |
textPropertyOptions |
|
actorName |
textPropertyOptions |
|
userRating |
integerPropertyOptions |
orderedRanking , maximumValue |
mpaaRating |
textPropertyOptions |
Operatör seçeneklerini tanımlama
Her tür, türe özel seçeneklere ek olarak, isteğe bağlı
operatorOptions
Bu seçenekler mülkün
arama operatörü. Aşağıdaki snippet,movieTitle
textPropertyOptions
veri türünü ayarlayarak ve
retrievalImportance
ve operatorOptions
türüne özel seçenekler.
{
"name": "movieTitle",
"isReturnable": true,
"isWildcardSearchable": true,
"textPropertyOptions": {
"retrievalImportance": { "importance": "HIGHEST" },
"operatorOptions": {
"operatorName": "title"
}
},
...
}
Her operatorOptions
bir operatorName
özelliğine sahip. Örneğin, bir tarih aralığı için title
movieTitle
. Operatör adı, tesisin arama operatörüdür. CEVAP
arama operatörü, kullanıcıların kullanmasını beklediğiniz gerçek parametredir
daraltırlar. Örneğin, filmleri başlıklarına göre aramak için
kullanıcı title:movieName
yazar; burada movieName
bir filmin adıdır.
Operatör adlarının, tesis adıyla aynı olması gerekmez. Bunun yerine en yaygın kelimeleri yansıtan operatör adlarını kullanmalısınız. kuruluşunuzdaki kullanıcılar tarafından gerçekleştirilir. Örneğin, kullanıcılarınız terimi "ad" "title" yerine film başlığı için operatör adı "name" değerine ayarlanır.
Tüm mülkler için geçerli olduğu sürece birden fazla mülk için aynı operatör adını
özellik aynı türe çözümlenir. sırasında paylaşılan operatör adı kullanılırken
bu operatör adını kullanan tüm özellikler alınır. Örneğin,
film nesnesinin plotSummary
ve plotSynopsis
olduğunu varsayalım
özellikleri ve bu özelliklerin her biri operatorName
plot
değerine sahipti. Farklı
bu özelliklerin ikisi de metin (textPropertyOptions
) olduğu sürece tek bir
plot
arama operatörünü kullanarak sorgu her ikisini de alır.
operatorName
özelliğine ek olarak, sıralanabilir özelliklerde
operatorOptions
içindeki lessThanOperatorName
ve greaterThanOperatorName
alanları.
Kullanıcılar, bir sorguyla karşılaştırmalara dayalı sorgular oluşturmak için bu seçenekleri
değer gönderildi.
Son olarak, textOperatorOptions
öğesinin içinde bir exactMatchWithOperator
alanı vardır
operatorOptions
. Şu durumda:
exactMatchWithOperator
değerini true
olarak ayarlarsanız, sorgu dizesi
yalnızca metnin içinde değil, tüm mülk değeriyle eşleştiğinden emin olun.
Metin değeri, operatör aramalarında tek bir atom değeri olarak ele alınır ve
özellik eşleşmelerini bulabilirsiniz.
Örneğin, tür özelliklerine sahip Kitap veya Film nesnelerini dizine eklemeyi düşünün.
Türler arasında "Bilim Kurgu", "Bilim" ve "Kurgu" yer alabilir. Entegre
exactMatchWithOperator
, false
olarak ayarlandı veya atlandı
bir tür için arama yaptığınızda veya
"Bilim"i seçerek veya "Kurgu" façeta da
"Bilim-Kurgu" için sonuçları döndür metin jetonlara ayrıldığında ve
"Bilim" ve "Kurgu" jetonlar da "Bilim-Kurgu" içinde yer alır.
exactMatchWithOperator
true
olduğunda,
metin tek bir simge olarak ele alındığından
"Bilim" veya "Kurgu" "Bilim-Kurgu" ile eşleşir.
(İsteğe bağlı) displayOptions
bölümünü ekleyin
Her bölümün sonunda isteğe bağlı displayOptions
propertyDefinition
bölümü. Bu bölümde bir displayLabel
dizesi var.
displayLabel
, önerilen, kullanıcı dostu bir metin etiketidir
belirtir. Özellik, görüntüleme için
ObjectDisplayOptions,
bu etiket mülkün önünde gösterilir. Mülk yapılandırılmışsa
görüntülü reklam için ve displayLabel
tanımlı değilse yalnızca özellik değeri
görüntülenir.
Aşağıdaki snippet, displayLabel
özelliğine sahip movieTitle
mülkünü göstermektedir
'Başlık' olarak ayarlayın.
{
"name": "movieTitle",
"isReturnable": true,
"isWildcardSearchable": true,
"textPropertyOptions": {
"retrievalImportance": { "importance": "HIGHEST" },
"operatorOptions": {
"operatorName": "title"
}
},
"displayOptions": {
"displayLabel": "Title"
}
},
Aşağıda tüm movie
özellikleri için displayLabel
değerleri verilmiştir
nesnesini tanımlayın:
Özellik | displayLabel |
---|---|
movieTitle |
Title |
releaseDate |
Release date |
genre |
Genre |
duration |
Run length |
actorName |
Actor |
userRating |
Audience score |
mpaaRating |
MPAA rating |
(İsteğe bağlı) suggestionFilteringOperators[]
bölümü ekleyin
İsteğe bağlı
suggestionFilteringOperators[]
bölümüne ekleyin.propertyDefinition
Bu bölümü kullanarak
Otomatik tamamlama önerilerini filtrelemek için kullanılacak bir özellik tanımlayın. Örneğin,
önerileri kullanıcının özelliklerine göre filtrelemek için genre
operatörünü tanımlayabilir.
tercih ettiğiniz film türünü seçin. Ardından, kullanıcı arama sorgusunu yazdığında, yalnızca
Tercih ettikleri türle eşleşen filmler otomatik tamamlamanın bir parçası olarak görüntülenir
öneriler.
Şemanızı kaydetme
Cloud Search sorgularından yapılandırılmış veri döndürülmesi için kaydolmanız gerekir Search Ads 360'taki şemanızı nasıl kullanacağınızı göstereceğim. Şema kaydetmek için Bir veri kaynağını başlatma adımı.
Veri kaynağı kimliğini kullanarak UpdateSchema şemanızı kaydetme isteğinde bulunun.
UpdateSchema referans sayfası şu HTTP isteğini oluşturun:
PUT https://cloudsearch.googleapis.com/v1/indexing/{name=datasources/*}/schema
İsteğinizin gövdesinde aşağıdaki bilgiler bulunmalıdır:
{ "validateOnly": // true or false, "schema": { // ... Your complete schema object ... } }
Şemanızın geçerliliğini test etmek için validateOnly
kaydettirmek değil.
Verilerinizi dizine ekleyin
Şemanız kaydedildikten sonra veri kaynağını Dizin çağrısının en iyi yoludur. Dizine ekleme, normalde içerik bağlayıcınız içinde gerçekleştirilir.
Film şemasını kullanarak tek bir film için REST API dizine ekleme isteği aşağıdaki gibi görünür:
{
"name": "datasource/<data_source_id>/items/titanic",
"acl": {
"readers": [
{
"gsuitePrincipal": {
"gsuiteDomain": true
}
}
]
},
"metadata": {
"title": "Titanic",
"sourceRepositoryUrl": "http://www.imdb.com/title/tt2234155/?ref_=nv_sr_1",
"objectType": "movie"
},
"structuredData": {
"object": {
"properties": [
{
"name": "movieTitle",
"textValues": {
"values": [
"Titanic"
]
}
},
{
"name": "releaseDate",
"dateValues": {
"values": [
{
"year": 1997,
"month": 12,
"day": 19
}
]
}
},
{
"name": "actorName",
"textValues": {
"values": [
"Leonardo DiCaprio",
"Kate Winslet",
"Billy Zane"
]
}
},
{
"name": "genre",
"enumValues": {
"values": [
"Drama",
"Action"
]
}
},
{
"name": "userRating",
"integerValues": {
"values": [
8
]
}
},
{
"name": "mpaaRating",
"textValues": {
"values": [
"PG-13"
]
}
},
{
"name": "duration",
"textValues": {
"values": [
"3 h 14 min"
]
}
}
]
}
},
"content": {
"inlineContent": "A seventeen-year-old aristocrat falls in love with a kind but poor artist aboard the luxurious, ill-fated R.M.S. Titanic.",
"contentFormat": "TEXT"
},
"version": "01",
"itemType": "CONTENT_ITEM"
}
objectType
alanındaki movie
değerinin nesneyle nasıl eşleştiğine dikkat edin
tanımlama adına yer verelim. Bu iki değeri eşleştirerek Cloud Search,
dizine ekleme sırasında hangi şema nesnesinin kullanılacağını belirler.
Ayrıca, releaseDate
şema mülkünün dizine eklenmesinin nasıl kullandığına da dikkat edin
year
, month
ve day
alt mülklerinin alt özelliklerini içerir. Bu özellikler
datePropertyOptions
kullanılarak tanımlamak için kullanılan date
veri türü olarak tanımlanır.
Ancak year
, month
ve day
şemada tanımlanmadığından,
bu özelliklerden biri (ör. year
) ayrı ayrı gösterilir.
Ayrıca, tekrarlanabilir actorName
mülkünün bir liste kullanılarak nasıl dizine eklendiğine de dikkat edin
değer.
Olası dizine ekleme sorunlarını belirleme
Şemalar ve dizine ekleme ile ilgili en yaygın iki sorun şunlardır:
Dizine ekleme isteğiniz, aşağıdaki biçime sahip olmayan bir şema nesnesi veya özellik adı içeriyor: kaydını tutar. Bu sorun, özellik veya nesneye neden olur göz ardı edilir.
Dizine ekleme isteğinizde türden farklı bir tür değerine sahip bir mülk var kayıtlı olduğunu fark eder. Bu sorun, Cloud Search'ün hata döndürmesine neden olur .
Şemanızı çeşitli sorgu türleriyle test etme
Şemanızı büyük bir üretim veri deposuna kaydettirmeden önce daha küçük bir test veri deposuyla test etmeniz önerilir. Bir küçük test deposu, şemanızda hızlı bir şekilde düzenlemeler yapmanıza olanak tanır. ve dizine eklenen verileri veya mevcut bir üretim dizinini oluşturarak kullanılabilir. Test veri deposu için diğer kullanıcıların bu verileri görmemesi için yalnızca bir test kullanıcısını yetkilendiren bir EKL daha fazla bilgi edineceksiniz.
Arama sorgularını doğrulamak üzere bir arama arayüzü oluşturmak için Arama arayüzü
Bu bölümde, projenizle ilgili bilgileri test etmek için kullanabileceğiniz film şeması oluşturalım.
Genel bir sorguyla test etme
Genel bir sorgu, veri kaynağındaki belirli bir anahtar kelimeyi içeren tüm öğeleri döndürür dize. Arama arayüzü kullanarak bir filme karşı genel bir sorgu çalıştırabilirsiniz "titanic" kelimesini yazıp Return tuşuna basarak veri kaynağına ekleyin. Tümü "titanik" kelimesini içeren filmler döndürülmüş olması gerekir.
Bir operatörle test edin
Sorguya bir operatör eklediğinizde, sonuçlar eşleşen öğelerle sınırlanır
operatör değeri. Örneğin, şunları bulmak için actor
operatörünü kullanabilirsiniz:
Belirli bir oyuncunun yer aldığı tüm filmler. Arama arayüzünü kullanarak şunları gerçekleştirebilirsiniz:
bir operator=value çifti yazarak bu operatör sorgusunu kullanabilirsiniz. Örneğin:
"actor:Zane" yazıp "actor:Zane" tuşuna basın. Zane'in aktör olduğu tüm filmler
döndürülmüş olması gerekir.
Şemanızı ayarlama
Şemanız ve verileriniz kullanıldıktan sonra, nelerin çalıştığını izlemeye devam edin çalışmadığından emin olun. Aşağıdaki durumlar için şemanızı ayarlamayı değerlendirmeniz gerekir:
- Daha önce dizine eklenmemiş bir alan dizine ekleniyor. Örneğin, kullanıcılarınız genellikle yönetmen adına göre film araması yapabilir, bu nedenle şemanızı operatör olarak yönetici adını destekleyecek şekilde ayarlayın.
- Kullanıcı geri bildirimine göre arama operatörü adlarını değiştirme. Operatör adları olması amaçlanmıştır. Kullanıcılarınız sürekli olarak "hatırlıyorsa" yanlış operatör adını değiştirirseniz bunu değiştirmeyi düşünebilirsiniz.
Şema değişikliğinden sonra yeniden dizine ekleme
Şemanızda aşağıdaki değerlerden herhangi birini değiştirmek, aşağıdakileri gerektirmez verilerinizi yeniden dizine ekleyin. Yeni bir UpdateSchema isteğini yerine getirir ve dizininiz çalışmaya devam eder:
- Operatör adları.
- Tam sayı minimum ve maksimum değerleri.
- Tam sayı ve enum sıralı sıralama.
- Güncellik seçenekleri.
- Görüntüleme seçenekleri.
Aşağıdaki değişikliklerde, daha önce dizine eklenen veriler çalışmaya devam edecek daha önce kaydedilmiş olan şemaya göre değiştirmeniz gerekir. Ancak, yeniden dizine eklemeniz gerekiyor varsa, güncellenmiş şemaya göre değişiklikleri görmek için mevcut girişleri değişiklikler:
- Yeni bir mülk veya nesne ekleme ya da kaldırma
false
olanisReturnable
,isFacetable
veyaisSortable
, şu şekilde değiştiriliyor:true
.
isFacetable
veya isSortable
değerini true
yalnızca
net bir kullanım alanı
ve ihtiyacı vardır.
Son olarak, isSuggestable
özelliğini işaretleyerek şemanızı güncellediğinizde,
verilerinizi yeniden dizine eklemeniz gerekir. Bu durum,
seçebilirsiniz.
İzin verilmeyen özellik değişiklikleri
Verilerinizi yeniden dizine ekleseniz bile bazı şema değişikliklerine izin verilmez. Bunun nedeni, bu değişikliklerin dizini bozar ya da kötü veya tutarsız arama sonuçları üretir. Bu yapılan değişiklikleri dahil et:
- Tesis veri türü.
- Mülk adı.
exactMatchWithOperator
ayar.retrievalImportance
ayar.
Ancak, bu sınırlamayı aşmanın bir yolu vardır.
Karmaşık bir şema değişikliği yapma
Kötü arama sonuçları veya bozuk arama oluşturacak değişiklikleri önlemek için emin olmak amacıyla, Cloud Search, UpdateSchema istekleri olur. Örneğin, özelliğin adı ayarlandıktan sonra değiştirilemez. Bu değişiklikler basit bir teklifle UpdateSchema isteğinde bulunmalıdır.
Hesabınızda izin verilmeyen bir değişiklik yapmanız şemasında, şemada aynı etkiyi yaratan bir dizi izin verilen değişiklik etkisi. Genel olarak bu işlem, dizine eklenen mülklerin ilk kez taşınmasını içerir. bir nesne tanımından yenisine doğru tanımlayıp yalnızca yeni özelliği kullanan bir dizine ekleme isteği.
Aşağıdaki adımlarda, bir mülkün veri türünün veya adının nasıl değiştirileceği gösterilmektedir:
- Şemanızdaki nesne tanımına yeni bir özellik ekleyin. Farklı bir adını tıklayın.
- Şu UpdateSchema yeni tanımla aynı anlama sahip olacaktır. Aşağıdakiler dahil olmak üzere şemanın tamamını göndermeyi unutmayın: hem yeni hem eski mülk.
Dizini veri deposundan doldurun. Dizini doldurmak için tüm istekleri değil, yeni mülkü kullanarak dizine ekleme isteklerini eski mülk bulunduğundan emin olun. Bu, sorgu eşlemelerinin iki kez sayılmasına yol açacaktır.
- Dolguyu dizine ekleme sırasında yeni mülkü kontrol edin ve varsayılan olarak eski mülke geri döner.
- Dolgu tamamlandıktan sonra, doğrulamak için test sorguları çalıştırın.
Eski mülkü silin. Başka bir sorun UpdateSchema eski mülk adını içermeyen isteği gönderin ve eski mülkün kullanımını sonlandırın yakında dizine eklenmemesi için kullanabilirsiniz.
Eski mülke ilişkin tüm kullanımları yeni mülke taşıyın. Örneğin, mülk adını içerik üretici yerine yazar olarak değiştirirseniz sorgunuzu güncellemeniz gerekir daha önce içerik üreticiye atıfta bulunduğu yerde yazarı kullanacak kod.
Cloud Search, silinen mülklerin veya nesnelerin kaydını 30 gün boyunca saklar. kullanarak beklenmedik dizine ekleme sonuçlarına neden olabilecek yeniden kullanıma karşı koruma sağlayın. Bu 30 gün içinde, silinen nesne veya özellik (gelecekteki dizin isteklerinden çıkarılmaları dahil). Bu sayede, daha sonra ilgili mülkü veya hizmeti yeniden etkinleştirmeye bunu dizininizin doğruluğunu koruyacak şekilde yapabilirsiniz.
Boyut sınırlamaları
Cloud Search, yapılandırılmış veri nesnelerinin ve şemaların boyutuna sınırlama getirir. Bu sınırlar şu şekildedir:
- Maksimum üst düzey nesne sayısı 10 nesnedir.
- Yapılandırılmış bir veri hiyerarşisinin maksimum derinliği 10 düzeydir.
- Bir nesnedeki toplam alan sayısı 1000 ile sınırlıdır. Burada, temel alanların sayısı ile sayılarnın toplamının toplamı bulunur alanlarından birini seçin.
Sonraki Adımlar
Atabileceğiniz sonraki adımlardan bazıları şunlardır:
Şunları yapmak için bir arama arayüzü oluşturun: şemanızı test edebilirsiniz.
Arama kalitesini iyileştirmek için şemanızı ayarlayın.
Tanımlanacak
_dictionaryEntry
şeması şirketinizde yaygın olarak kullanılan terimlerin eş anlamlıları. To_dictionaryEntry
her bir şemaya Eş anlamlıları tanımlayın.Bir bağlayıcı oluşturun.