Azure Bilişsel Arama bir bilgi deposunda projeksiyonlarla çalışmaWorking with projections in a knowledge store in Azure Cognitive Search

Önemli

bilgi deposu Şu anda genel önizleme aşamasındadır.Knowledge store is currently in public preview. Önizleme işlevselliği, bir hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez.Preview functionality is provided without a service level agreement, and is not recommended for production workloads. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.For more information, see Supplemental Terms of Use for Microsoft Azure Previews. REST API sürüm 2019-05-06-önizleme , Önizleme özellikleri sağlar.The REST API version 2019-05-06-Preview provides preview features. Şu anda sınırlı sayıda portal desteği var ve .NET SDK desteği yok.There is currently limited portal support, and no .NET SDK support.

Azure Bilişsel Arama, dizin oluşturmanın bir parçası olarak yerleşik bilişsel yetenekler ve özel yetenekler aracılığıyla içerik zenginleştirme imkanı sunar.Azure Cognitive Search enables content enrichment through built-in cognitive skills and custom skills as part of indexing. Zenginleştirme belgelerinize yapı ekler ve daha etkili bir şekilde arama yapın.Enrichments add structure to your documents and make searching more effective. Birçok örnekte, zenginleştirilmiş belgeler, bilgi madenciliği gibi arama dışındaki senaryolar için yararlıdır.In many instances, the enriched documents are useful for scenarios other than search, such as for knowledge mining.

Bilgi deposununbir bileşeni olan tahminler, bilgi madenciliği için fiziksel depolamaya kaydedilebilen zenginleştirilmiş belgelerin görünümleridir.Projections, a component of knowledge store, are views of enriched documents that can be saved to physical storage for knowledge mining purposes. Bir projeksiyon, verilerinizi, Power BI gibi araçların ek bir çaba olmadan okuyabilmesi için, ilişkilerini koruyarak, verilerinizi gereksinimlerinize göre hizalayan bir şekle "proje" sağlar.A projection lets you "project" your data into a shape that aligns with your needs, preserving relationships so that tools like Power BI can read the data with no additional effort.

Tahminler, Azure Tablo depolamada veya Azure Blob depolama alanında depolanan JSON nesnelerinde bulunan satırlar ve sütunlarda depolanan verilerle tablosal olabilir.Projections can be tabular, with data stored in rows and columns in Azure Table storage, or JSON objects stored in Azure Blob storage. Verilerinizin zenginleştirmekte olduğu haliyle birden fazla projeksiyoni tanımlayabilirsiniz.You can define multiple projections of your data as it is being enriched. Birden çok projeksiyonlar ayrı kullanım durumları için aynı verinin farklı şekilde olmasını istediğinizde faydalıdır.Multiple projections are useful when you want the same data shaped differently for individual use cases.

Bilgi deposu üç tür projeksiyonları destekler:The knowledge store supports three types of projections:

  • Tablolar: satır ve sütun olarak en iyi şekilde temsil edilen veriler için tablo projeksiyonları tablo depolamada şema veya projeksiyon tanımlamanızı sağlar.Tables: For data that's best represented as rows and columns, table projections allow you to define a schematized shape or projection in Table storage.

  • Nesneler: verileriniz ve zenginleştirme IÇIN bir JSON temsiline ihtiyacınız olduğunda, nesne projeksiyonlar blob olarak kaydedilir.Objects: When you need a JSON representation of your data and enrichments, object projections are saved as blobs.

  • Dosyalar: belgelerden ayıklanan görüntüleri kaydetmeniz gerektiğinde, dosya projeksiyonları, normalleştirilmiş görüntüleri kaydetmenizi sağlar.Files: When you need to save the images extracted from the documents, file projections allow you to save the normalized images.

Bağlamda tanımlanan projeksiyonları görmek için bilgi deposu ile çalışmayabaşlayın.To see projections defined in context, step through How to get started with knowledge store.

Projeksiyon gruplarıProjection groups

Bazı durumlarda, farklı hedefleri karşılamak için zenginleştirilmiş verilerinizi farklı şekillerde proje yapmanız gerekir.In some cases, you will need to project your enriched data in different shapes to meet different objectives. Bilgi deposu, birden çok projeksiyonun grubunu tanımlamanızı sağlar.The knowledge store allows you to define multiple groups of projections. Projeksiyon grupları, karşılıklı denetim ve related'ın aşağıdaki temel özelliklerine sahiptir.Projection groups have the following key characteristics of mutual exclusivity and relatedness.

Karşılıklı denetimMutual exclusivity

Tek bir grupta yansıtılan tüm içerikler, diğer projeksiyon gruplarında yansıtılan verilerden bağımsızdır.All content projected into a single group is independent of data projected into other projection groups. Bu bağımsızlık, aynı verilerin şekillendirilmiş bir şekilde farklı, ancak her projeksiyon grubunda tekrarlanabileceği anlamına gelir.This independence implies that you can have the same data shaped differently, yet repeated in each projection group.

RelatedlikRelatedness

Projeksiyon grupları artık, yansıtma türlerinde ilişkileri korurken belgelerinizi İzdüşüm türleri arasında projenize eklemenize olanak tanır.Projection groups now allow you to project your documents across projection types while preserving the relationships across projection types. Tek bir projeksiyon grubu içinde yansıtılan tüm içerik, yansıtma türlerinde verilerin içindeki ilişkileri korur.All content projected within a single projection group preserves relationships within the data across projection types. Tablolar içinde, ilişkiler oluşturulan bir anahtarı temel alır ve her alt düğüm üst düğüme bir başvuru tutar.Within tables, relationships are based on a generated key and each child node retains a reference to the parent node. Türler arasında (tablolar, nesneler ve dosyalar), tek bir düğüm farklı türler arasında yansıtıldığınızda ilişkiler korunur.Across types (tables, objects, and files), relationships are preserved when a single node is projected across different types. Örneğin, resim ve metin içeren bir belge olduğu bir senaryo düşünün.For example, consider a scenario where you have a document containing images and text. Metni tablolar veya nesneler ile resimlerin ya da nesnelerin dosya URL 'sini içeren bir özelliğe sahip olduğu dosyalara yansıt edebilirsiniz.You could project the text to tables or objects and the images to files where the tables or objects have a property containing the file URL.

Giriş şekillendirmeInput shaping

Verilerinizin doğru şekilde veya yapıda alınması, etkin kullanım için anahtar, BT tabloları veya nesneleri olmalıdır.Getting your data in the right shape or structure is key to effective use, be it tables or objects. Verilerinizi nasıl kullanabileceğinizi ve kullanabileceğinizi temel alarak verilerinizi şekillendirebilir veya yapısal hale getirme özelliği, Beceri içinde her yetenek için mil olarak kullanıma sunulan bir temel yetenektir.The ability to shape or structure your data based on how you plan to access and use it is a key capability exposed as the Shaper skill within the skillset.

Projeksiyon şeması ile eşleşen zenginleştirme ağacında bir nesneniz olduğunda, projeksiyonu daha kolay tanımlanır.Projections are easier to define when you have an object in the enrichment tree that matches the schema of the projection. Her yetenek Için güncelleştirilmiş mil, zenginleştirme ağacının farklı düğümlerinden bir nesne oluşturmanıza ve bunların üstünü yeni bir düğüm altında oluşturmanıza olanak sağlar.The updated Shaper skill allows you to compose an object from different nodes of the enrichment tree and parent them under a new node. Mil başına , iç içe geçmiş nesnelerle karmaşık türler tanımlamanıza olanak sağlar.The Shaper skill allows you to define complex types with nested objects.

Projeniz için gereken tüm öğeleri içeren yeni bir şekil tanımladığınız zaman, artık bu şekli projeksiyonlarınızın kaynağı olarak veya başka bir beceriye giriş olarak kullanabilirsiniz.When you have a new shape defined that contains all the elements you need to project out, you can now use this shape as the source for your projections or as an input to another skill.

Projeksiyon DilimlemeProjection slicing

Yansıtma grubu tanımlarken, zenginleştirme ağacındaki tek bir düğüm birden çok ilişkili tabloya veya nesneye dilimlenebilir.When defining a projection group, a single node in the enrichment tree can be sliced into multiple related tables or objects. Mevcut projeksiyonun alt düğümü olan bir kaynak yolu olan bir projeksiyon eklemek, alt düğümün üst düğümden dilimlendirime ve yeni, bununla ilgili yeni tablo ya da nesne ile yansıtılmakta olacaktır.Adding a projection with a source path that is a child of an existing projection will result in the child node being sliced out of the parent node and projected into the new yet related table or object. Bu teknik, tüm projeksiyonlarınızın kaynağı olabilecek beceri başına bir mil içinde tek bir düğüm tanımlamanızı sağlar.This technique allows you to define a single node in a shaper skill that can be the source for all of your projections.

Tablo projeksiyonlarınıTable projections

İçeri aktarma işlemi daha da kolaylaştırdığı için Power BI ile veri araştırması için tablo projeksiyonlarını öneririz.Because it makes importing easier, we recommend table projections for data exploration with Power BI. Ayrıca, tablo tahminleri tablo ilişkileri arasındaki kardinalite değiştirilmesini sağlar.Additionally, table projections allow for changing the cardinality between table relationships.

Dizininizdeki tek bir belgeyi birden çok tabloya proje ekleyebilirsiniz ve ilişkileri korur.You can project a single document in your index into multiple tables, preserving the relationships. Birden çok tabloya yansıtıldığınızda, bir alt düğüm aynı grup içindeki başka bir tablonun kaynağı değilse, tüm şekil her tabloya yansıtılır.When projecting to multiple tables, the complete shape will be projected into each table, unless a child node is the source of another table within the same group.

Tablo projeksiyonu tanımlamaDefining a table projection

Beceri knowledgeStore öğesi içinde tablo projeksiyonu tanımlarken, zenginleştirme ağacındaki bir düğümü tablo kaynağına eşleyerek başlayın.When defining a table projection within the knowledgeStore element of your skillset, start by mapping a node on the enrichment tree to the table source. Genellikle bu düğüm, tablolarda proje yapmanız gereken belirli bir şekli oluşturmak için yetenekler listesine eklediğiniz her bir beceriye ait çıktıdır.Typically this node is the output of a Shaper skill that you added to the list of skills to produce a specific shape that you need to project into tables. Projeyi seçtiğiniz düğüm birden çok tablo halinde projeye dilimlenebilir.The node you choose to project can be sliced to project into multiple tables. Tablolar tanımı, proje yapmak istediğiniz tabloların bir listesidir.The tables definition is a list of tables that you want to project.

Her tablo üç özellik gerektirir:Each table requires three properties:

  • tableName: Azure Storage 'daki tablonun adı.tableName: The name of the table in Azure Storage.

  • generatedKeyName: Bu satırı benzersiz bir şekilde tanımlayan anahtarın sütun adı.generatedKeyName: The column name for the key that uniquely identifies this row.

  • Kaynak: zenginleştirme ağacınızdaki düğüm, kendi zenginleştirmelerinin kaynağını oluşturur.source: The node from the enrichment tree you are sourcing your enrichments from. Bu düğüm genellikle biçimlendiricilerin çıktıdır, ancak yeteneklerin herhangi birinin çıktısı olabilir.This node is usually the output of a shaper, but could be the output of any of the skills.

Aşağıda tablo projeksiyonlarını örnek verilmiştir.Here is an example of table projections.

{
    "name": "your-skillset",
    "skills": [
      …your skills
    ],
"cognitiveServices": {
… your cognitive services key info
    },

    "knowledgeStore": {
      "storageConnectionString": "an Azure storage connection string",
      "projections" : [
        {
          "tables": [
            { "tableName": "MainTable", "generatedKeyName": "SomeId", "source": "/document/EnrichedShape" },
            { "tableName": "KeyPhrases", "generatedKeyName": "KeyPhraseId", "source": "/document/EnrichedShape/*/KeyPhrases/*" },
            { "tableName": "Entities", "generatedKeyName": "EntityId", "source": "/document/EnrichedShape/*/Entities/*" }
          ]
        },
        {
          "objects": [ ]
        },
        {
            "files": [ ]
        }
      ]
    }
}

Bu örnekte gösterildiği gibi, anahtar tümcecikler ve varlıklar farklı tablolara modellenir ve her satır için üst (MainTable) öğesine geri bir başvuru içerir.As demonstrated in this example, the key phrases and entities are modeled into different tables and will contain a reference back to the parent (MainTable) for each row.

Aşağıdaki çizimde, bilgi deposu ile çalışmaya başlama ile Ilgilibüyük/küçük harf Yasası konusu bir başvurudur.The following illustration is a reference to the Case-law exercise in How to get started with knowledge store. Bir durumda birden çok opvaya sahip olan bir senaryoda ve her bir görüşün içinde yer alan varlıkları tanımlayarak zenginleştirilerek, bu tahminleri burada gösterildiği gibi modelleyebilirsiniz.In a scenario where a case has multiple opinions, and each opinion is enriched by identifying entities contained within it, you could model the projections as shown here.

Tablolardaki varlıklar ve ilişkilerEntities and relationships in tables

Nesne projeksiyonlarıObject projections

Nesne projeksiyonları herhangi bir düğümden kaynaksız bir şekilde zenginleştirme ağacının JSON temsilleridir.Object projections are JSON representations of the enrichment tree that can be sourced from any node. Çoğu durumda, bir tablo projeksiyonu oluşturan her yetenek için aynı mil , nesne projeksiyonu oluşturmak için kullanılabilir.In many cases, the same Shaper skill that creates a table projection can be used to generate an object projection.

{
    "name": "your-skillset",
    "skills": [
      …your skills
    ],
"cognitiveServices": {
… your cognitive services key info
    },

    "knowledgeStore": {
      "storageConnectionString": "an Azure storage connection string",
      "projections" : [
        {
          "tables": [ ]
        },
        {
          "objects": [
            {
              "storageContainer": "Reviews", 
              "format": "json", 
              "source": "/document/Review", 
              "key": "/document/Review/Id" 
            }
          ]
        },
        {
            "files": [ ]
        }
      ]
    }
}

Nesne projeksiyonu oluşturmak, nesneye özgü birkaç özniteliği gerektirir:Generating an object projection requires a few object-specific attributes:

  • storageContainer: nesnelerin kaydedileceği kapsayıcıstorageContainer: The container where the objects will be saved
  • Kaynak: projeksiyon kökü olan zenginleştirme ağacının düğümünün yolusource: The path to the node of the enrichment tree that is the root of the projection
  • anahtar: depolanacak nesnenin benzersiz bir anahtarını temsil eden bir yol.key: A path that represents a unique key for the object to be stored. Kapsayıcıda Blobun adını oluşturmak için kullanılır.It will be used to create the name of the blob in the container.

Dosya projeksiyonuFile projection

Dosya projeksiyonlar nesne projeksiybunlara benzerdir ve yalnızca normalized_images koleksiyonu üzerinde işlem görür.File projections are similar to object projections and only act on the normalized_images collection. Nesne projeksiybunlara benzer şekilde dosya projeksiyonları, blob kapsayıcısına belge KIMLIĞININ Base64 kodlamalı değerinin klasör öneki ile kaydedilir.Similar to object projections, file projections are saved in the blob container with folder prefix of the base64 encoded value of the document ID. Dosya projeksiyonlar, nesne projeksiyonları ile aynı kapsayıcıyı paylaşamaz ve farklı bir kapsayıcıya yansıtılmalıdır.File projections cannot share the same container as object projections and need to be projected into a different container.

{
    "name": "your-skillset",
    "skills": [
      …your skills
    ],
"cognitiveServices": {
… your cognitive services key info
    },

    "knowledgeStore": {
      "storageConnectionString": "an Azure storage connection string",
      "projections" : [
        {
          "tables": [ ]
        },
        {
          "objects": [ ]
        },
        {
            "files": [
                 {
                  "storageContainer": "ReviewImages",
                  "source": "/document/normalized_images/*"
                }
            ]
        }
      ]
    }
}

Projeksiyon yaşam döngüsüProjection lifecycle

Projeksiyonlarınızın veri kaynağınızdaki kaynak verilere bağlı bir yaşam döngüsü vardır.Your projections have a lifecycle that is tied to the source data in your data source. Verileriniz güncelleştirildiğinden ve yeniden dizinleniyorsa, tahminleriniz, projeksiyonlarınızın veri kaynağınızdaki verilerle tutarlı olmasını sağlayan zenginlerin sonuçlarıyla güncelleştirilir.As your data is updated and reindexed, your projections are updated with the results of the enrichments ensuring your projections are eventually consistent with the data in your data source. Tahminler, dizininiz için yapılandırdığınız silme ilkesini alırlar.The projections inherit the delete policy you've configured for your index. Dizin Oluşturucu veya arama hizmeti silindiğinde, projeksiyonlar silinmez.Projections are not deleted when the indexer or the search service itself is deleted.

Projeksiyonları kullanmaUsing projections

Dizin Oluşturucu çalıştırıldıktan sonra, tahminler aracılığıyla belirttiğiniz kapsayıcılardaki veya tablolardaki yansıtılan verileri okuyabilirsiniz.After the indexer is run, you can read the projected data in the containers or tables you specified through projections.

Analiz için Power BI araştırma, Azure Tablo depolama alanını veri kaynağı olarak ayarlamak kadar basittir.For analytics, exploration in Power BI is as simple as setting Azure Table storage as the data source. İçindeki ilişkileri kullanarak verilerinize kolayca bir görselleştirme kümesi oluşturabilirsiniz.You can easily create a set of visualizations on your data using the relationships within.

Alternatif olarak, bir veri bilimi ardışık düzeninde zenginleştirilmiş verileri kullanmanız gerekiyorsa, verileri bloblardan bir Pandas DataFrame 'e yükleyebilirsiniz.Alternatively, if you need to use the enriched data in a data science pipeline, you could load the data from blobs into a Pandas DataFrame.

Son olarak, verilerinizi bilgi deposundan dışarı aktarmanız gerekiyorsa Azure Data Factory, verileri dışarı aktarmak ve seçtiğiniz veritabanına eklemek için bağlayıcılar içerir.Finally, if you need to export your data from the knowledge store, Azure Data Factory has connectors to export the data and land it in the database of your choice.

Sonraki adımlarNext steps

Bir sonraki adım olarak, örnek verileri ve yönergeleri kullanarak ilk bilgi deponuzu oluşturun.As a next step, create your first knowledge store using sample data and instructions.