Şema oluşturma ve kaydetme

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:

  1. Beklenen kullanıcı davranışını belirleme
  2. Veri kaynağını başlatma
  3. Şema oluşturma
  4. Örnek şemayı tamamlama
  5. Şemanızı kaydetme
  6. Verilerinizi dizine ekleme
  7. Şemanızı test etme
  8. Ş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:

  1. Farklı kullanıcılardan gelen çeşitli sorguları değerlendirme
  2. Sorgularda kullanılabilecek nesneleri tanımlayın. Nesneler mantıksal film veritabanındaki bir film gibi ilgili veri kümeleri.
  3. 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.
  4. 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ı."
  5. 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.
  6. (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.
  7. 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.

Varlıklar arasındaki şema bağlantılarını gösteren çizim
Şekil 1. İki nesneyi gösteren örnek şema bir alt nesne kullanın.

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, 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 ve retrievalImportance gibi.
  • Mülkün nasıl kullanıldığını açıklayan operatorOptions arama operatörü.
  • Önceki snippet'teki displayLabel gibi bir veya daha fazla displayOptions.

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çin isReturnable 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çin genre, actorName, userRating ve mpaaRating 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ğeri science-fiction ise science-* 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" ise sci* veya fi* sorguları öğeyle eşleşiyor ancak science-* 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: &quot;actor:Zane&quot; yazıp &quot;actor:Zane&quot; 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 olan isReturnable, isFacetable veya isSortable, ş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:

  1. Şemanızdaki nesne tanımına yeni bir özellik ekleyin. Farklı bir adını tıklayın.
  2. Ş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.
  3. 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.

    1. Dolguyu dizine ekleme sırasında yeni mülkü kontrol edin ve varsayılan olarak eski mülke geri döner.
    2. Dolgu tamamlandıktan sonra, doğrulamak için test sorguları çalıştırın.
  4. 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.

  5. 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:

  1. Şunları yapmak için bir arama arayüzü oluşturun: şemanızı test edin.

  2. Arama kalitesini iyileştirmek için şemanızı ayarlayın.

  3. En iyi sorgu yorumlaması için bir şema yapılandırın.

  4. 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.

  5. Bir bağlayıcı oluşturun.