Aracılığıyla paylaş


Belge Ekleme, Güncelleştirme veya Silme (Önizleme REST API'si)

için geçerlidir: 2023-07-01-Preview. Bu sürüm artık desteklenmiyor. Yükseltme hemen daha yeni bir sürüme.

Önemli

2023-07-01-Preview ekliyor:

  • Belgedeki vektör alanları için destek.

HTTP POST kullanarak vektör alanları içeren belgeleri belirtilen dizine gönderebilirsiniz. Büyük bir güncelleştirme için toplu işlem (toplu iş başına en fazla 1000 belge veya toplu iş başına yaklaşık 16 MB) dizin oluşturma performansını artırır.

POST https://[service name].search.windows.net/indexes/[index name]/docs/index?api-version=2023-07-01-Preview  
  Content-Type: application/json   
  api-key: [admin key]  

URI Parametreleri

Parametre Tarif
hizmet adı Gerekli. Bu değeri arama hizmetinizin benzersiz, kullanıcı tanımlı adına ayarlayın.
dizin adı Gerekli. Bu değeri belgeleri alan dizinin adına ayarlayın. Aynı anda yalnızca bir dizine belge gönderebilirsiniz.
api sürümü Daha fazla sürüm için bkz. API sürümleri.

İstek Üst Bilgileri

Aşağıdaki tabloda gerekli ve isteğe bağlı istek üst bilgileri açıklanmaktadır.

Alanları Tarif
İçerik Türü Gerekli. Bu değeri application/json olarak ayarlayın
api-key İsteğe bağlı olarak Azure rollerini kullanıyorsanız ve istekte taşıyıcı belirteç sağlanıyorsa bir anahtar gereklidir. Api anahtarı, arama hizmetinizde isteğin kimliğini doğrulayan benzersiz, sistem tarafından oluşturulan bir dizedir. Belgeleri karşıya yüklemek için bir yönetici API anahtarı gerekir. Ayrıntılar için bkz. Anahtar kimlik doğrulaması kullanarak Azure AI Search'e bağlanma.

İstek Gövdesi

İsteğin gövdesi dizine eklenecek bir veya daha fazla belge içeriyor. Belgeler büyük/küçük harfe duyarlı bir anahtar aracılığıyla benzersiz olarak tanımlanır. Her belge bir eylemle ilişkilendirilir: "upload", "delete", "merge" veya "mergeOrUpload". Karşıya yükleme istekleri, belge verilerini bir dizi anahtar/değer çifti olarak içermelidir.

Vektör alanları Collection(Edm.Single)türündedir. Vektör verileri tek duyarlıklı kayan nokta sayılarından oluşan bir diziden oluşur.

Vektör alanları, özgün içeriğin karmaşıklığı, uzunluğu veya türüne bağlı olarak binlerce ekleme içerebilir. Azure AI Search içeriği eklemelere dönüştürmez. Dizine gönderdiğiniz belgeler, daha önce oluşturduğunuz eklemeleri içermelidir.

{  
  "value": [  
    {  
      "@search.action": "upload (default) | merge | mergeOrUpload | delete",  
      "key_field_name": "unique_key_of_document", (key/value pair for key field from index schema)  
      "field_name": field_value (key/value pairs matching index schema),
      "vector_field_name": [ array of single-precision floating point numbers ]
        ...  
    },  
    ...  
  ]  
}  
Mülk Tarif
@search.action Gerekli. Geçerli değerler "upload", "delete", "merge" veya "mergeOrUpload" değerleridir. Varsayılan olarak "karşıya yükleme" kullanılır.
key_field_name Gerekli. Dizinde belge anahtarı görevi gören ve yalnızca benzersiz değerler içeren bir alan tanımı. Belge anahtarları yalnızca harf, sayı, tire ("-"), alt çizgi ("_") ve eşittir işaretleri ("=") içerebilir ve büyük/küçük harfe duyarlıdır.
field_name Gerekli. Alan adının dizin tanımındaki bir alan adına karşılık geldiği ad-değer çiftleri. Değer kullanıcı tanımlıdır ancak alan türü için geçerli olmalıdır.

Yanıt

Durum kodu: Başarılı bir yanıt için 200 döndürülür; bu, tüm öğelerin durabilir bir şekilde depolandığı ve dizin oluşturmanın başlatıldığı anlamına gelir. Dizin oluşturma arka planda çalışır ve dizin oluşturma işlemi tamamlandıktan birkaç saniye sonra yeni belgeleri kullanıma (sorgulanabilir ve aranabilir) sağlar.

Tüm öğeler için durum özelliği true olarak ayarlandığında başarılı dizin oluşturma gösterilir. statusCode özelliği 201 (yeni yüklenen belgeler için) veya 200 (birleştirilmiş veya silinmiş belgeler için) olmalıdır.

Örnekler

Örnek: Metin ve vektör içeriğine sahip iki belgeyi karşıya yükleme

Okunabilirlik için, aşağıdaki örnekte belgelerin ve eklemelerin bir alt kümesi gösterilmektedir. Belgeleri Karşıya Yükle isteğinin gövdesi, her biri "titleVector" ve "contentVector" için tam bir ekleme kümesine sahip 108 belgeden oluşur.

POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/index?api-version={{api-version}}
Content-Type: application/json
api-key: {{admin-api-key}}
{
    "value": [
        {
            "id": "1",
            "title": "Azure App Service",
            "content": "Azure App Service is a fully managed platform for building, deploying, and scaling web apps. You can host web apps, mobile app backends, and RESTful APIs. It supports a variety of programming languages and frameworks, such as .NET, Java, Node.js, Python, and PHP. The service offers built-in auto-scaling and load balancing capabilities. It also provides integration with other Azure services, such as Azure DevOps, GitHub, and Bitbucket.",
            "category": "Web",
            "titleVector": [
                -0.02250031754374504,
                 . . . 
                        ],
            "contentVector": [
                -0.024740582332015038,
                 . . .
            ],
            "@search.action": "upload"
        },
        {
            "id": "2",
            "title": "Azure Functions",
            "content": "Azure Functions is a serverless compute service that enables you to run code on-demand without having to manage infrastructure. It allows you to build and deploy event-driven applications that automatically scale with your workload. Functions support various languages, including C#, F#, Node.js, Python, and Java. It offers a variety of triggers and bindings to integrate with other Azure services and external services. You only pay for the compute time you consume.",
            "category": "Compute",
            "titleVector": [
                -0.020159931853413582,
                . . .
            ],
            "contentVector": [
                -0.02780858241021633,,
                 . . .
            ],
            "@search.action": "upload"
        }
        . . .
    ]
}

Not

Saat dilimi bilgilerini içeren DateTimeOffset değerleri dizininize yüklediğinizde Azure AI Search bu değerleri UTC olarak normalleştirir. Örneğin, 2019-01-13T14:03:00-08:00, 2019-01-13T22:03:00Z olarak depolanır. Saat dilimi bilgilerini depolamanız gerekiyorsa dizininize fazladan bir sütun ekleyin.

Ayrıca bkz.