共用方式為


Indexers - Create

建立新的索引器。

POST {endpoint}/indexers?api-version=2024-07-01

URI 參數

名稱 位於 必要 類型 Description
endpoint
path True

string

搜尋服務的端點 URL。

api-version
query True

string

用戶端 API 版本。

要求標頭

名稱 必要 類型 Description
x-ms-client-request-id

string

uuid

隨要求一起傳送的追蹤標識碼,以協助偵錯。

要求本文

名稱 必要 類型 Description
dataSourceName True

string

這個索引器從中讀取數據的數據源名稱。

name True

string

索引器的名稱。

targetIndexName True

string

這個索引器寫入數據的索引名稱。

@odata.etag

string

索引器 ETag。

description

string

索引器的描述。

disabled

boolean

值,指出索引器是否已停用。 默認值為 false。

encryptionKey

SearchResourceEncryptionKey

您在 Azure Key Vault 中建立的加密金鑰描述。 當您想要完全保證沒有人,甚至沒有Microsoft,可以解密時,此密鑰可用來為索引器定義提供額外的待用加密層級(以及索引器執行狀態)。 加密索引器定義之後,它一律會保持加密狀態。 搜尋服務會忽略將此屬性設定為 null 的嘗試。 如果您想要輪替加密金鑰,您可以視需要變更此屬性;您的索引器定義(和索引器執行狀態)將不會受到影響。 使用客戶管理的金鑰加密不適用於免費搜尋服務,而且僅適用於 2019 年 1 月 1 日或之後建立的付費服務。

fieldMappings

FieldMapping[]

定義數據源中的欄位與索引中對應目標欄位之間的對應。

outputFieldMappings

FieldMapping[]

輸出欄位對應會在擴充之後套用,並在編製索引之前立即套用。

parameters

IndexingParameters

索引器執行的參數。

schedule

IndexingSchedule

這個索引器排程。

skillsetName

string

使用此索引器執行的技能集名稱。

回應

名稱 類型 Description
201 Created

SearchIndexer

Other Status Codes

ErrorResponse

錯誤回應。

範例

SearchServiceCreateIndexer

範例要求

POST https://myservice.search.windows.net/indexers?api-version=2024-07-01

{
  "name": "myindexer",
  "description": "an indexer",
  "dataSourceName": "mydatasource",
  "targetIndexName": "orders",
  "schedule": {
    "interval": "PT1H",
    "startTime": "2015-01-01T00:00:00Z"
  },
  "parameters": {
    "maxFailedItems": 10,
    "maxFailedItemsPerBatch": 5
  },
  "encryptionKey": {
    "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault",
    "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString",
    "keyVaultUri": "https://myKeyVault.vault.azure.net",
    "accessCredentials": {
      "applicationId": "00000000-0000-0000-0000-000000000000",
      "applicationSecret": "<applicationSecret>"
    }
  }
}

範例回覆

{
  "name": "myindexer",
  "description": "an indexer",
  "dataSourceName": "mydatasource",
  "targetIndexName": "orders",
  "schedule": {
    "interval": "PT1H",
    "startTime": "2015-01-01T00:00:00Z"
  },
  "parameters": {
    "maxFailedItems": 10,
    "maxFailedItemsPerBatch": 5
  },
  "fieldMappings": [],
  "disabled": false,
  "encryptionKey": {
    "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault",
    "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString",
    "keyVaultUri": "https://myKeyVault.vault.azure.net",
    "accessCredentials": {
      "applicationId": "00000000-0000-0000-0000-000000000000",
      "applicationSecret": null
    }
  }
}

定義

名稱 Description
AzureActiveDirectoryApplicationCredentials

為搜尋服務建立之已註冊應用程式的認證,用於對儲存在 Azure Key Vault 中的加密密鑰進行驗證存取。

BlobIndexerDataToExtract

指定要從 Azure Blob 記憶體擷取的數據,並在 「imageAction」 設定為 「none」 以外的值時,告知索引器要從影像內容中擷取哪些數據。 這適用於.PDF或其他應用程式中的內嵌影像內容,或 Azure Blob 中的 .jpg 和 .png等圖像檔。

BlobIndexerImageAction

決定如何處理 Azure Blob 記憶體中的內嵌影像和映像檔案。 將 「imageAction」 組態設定為 「none」 以外的任何值,需要技能集也附加至該索引器。

BlobIndexerParsingMode

表示從 Azure Blob 數據源編製索引的剖析模式。

BlobIndexerPDFTextRotationAlgorithm

決定從 Azure Blob 記憶體中的 PDF 檔案擷取文字的演算法。

ErrorAdditionalInfo

資源管理錯誤其他資訊。

ErrorDetail

錯誤詳細數據。

ErrorResponse

錯誤回應

FieldMapping

定義數據源中的欄位與索引中目標欄位之間的對應。

FieldMappingFunction

表示在編製索引之前,從數據源轉換值的函式。

IndexerExecutionEnvironment

指定索引器應該執行的環境。

IndexingParameters

表示索引器執行的參數。

IndexingParametersConfiguration

索引器特定組態屬性的字典。 每個名稱都是特定屬性的名稱。 每個值都必須是基本類型。

IndexingSchedule

表示索引器執行的排程。

SearchIndexer

表示索引器。

SearchResourceEncryptionKey

Azure Key Vault 中客戶管理的加密密鑰。 您建立和管理的金鑰可用來加密或解密待用數據,例如索引和同義字對應。

AzureActiveDirectoryApplicationCredentials

為搜尋服務建立之已註冊應用程式的認證,用於對儲存在 Azure Key Vault 中的加密密鑰進行驗證存取。

名稱 類型 Description
applicationId

string

AAD 應用程式識別碼,已將待用數據加密時要使用的 Azure Key Vault 所需訪問許可權授與。 應用程式標識碼不應與 AAD 應用程式的物件標識元混淆。

applicationSecret

string

指定 AAD 應用程式的驗證金鑰。

BlobIndexerDataToExtract

指定要從 Azure Blob 記憶體擷取的數據,並在 「imageAction」 設定為 「none」 以外的值時,告知索引器要從影像內容中擷取哪些數據。 這適用於.PDF或其他應用程式中的內嵌影像內容,或 Azure Blob 中的 .jpg 和 .png等圖像檔。

名稱 類型 Description
allMetadata

string

擷取 Azure Blob 記憶體子系統和內容類型特定元數據所提供的元數據(例如,只編制 .png 檔案索引的唯一元數據)。

contentAndMetadata

string

從每個 Blob 擷取所有元數據和文字內容。

storageMetadata

string

只編製標準 Blob 屬性和使用者指定元數據的索引。

BlobIndexerImageAction

決定如何處理 Azure Blob 記憶體中的內嵌影像和映像檔案。 將 「imageAction」 組態設定為 「none」 以外的任何值,需要技能集也附加至該索引器。

名稱 類型 Description
generateNormalizedImagePerPage

string

從影像擷取文字(例如,流量停止符號中的“STOP”一詞),並將它內嵌到內容字段中,但以不同的方式將 PDF 檔案視為影像,並據以正規化,而不是擷取內嵌影像。 如果已設定 「generateNormalizedImages」,則會將非 PDF 檔類型視為相同。

generateNormalizedImages

string

從影像擷取文字(例如,流量停止符號中的“STOP”一詞),並將其內嵌至內容字段。 此動作要求 「dataToExtract」 設定為 「contentAndMetadata」。 標準化影像是指當您在視覺搜尋結果中包含影像時,產生統一影像輸出、大小和旋轉的額外處理,以提升一致的轉譯。 當您使用此選項時,會為每個影像產生這項資訊。

none

string

忽略數據集中的內嵌影像或圖像檔案。 這是預設值。

BlobIndexerParsingMode

表示從 Azure Blob 數據源編製索引的剖析模式。

名稱 類型 Description
default

string

針對一般檔案處理,設定為預設值。

delimitedText

string

當 Blob 是純 CSV 檔案時,設定為 delimitedText。

json

string

設定為 json,以從 JSON 檔案擷取結構化內容。

jsonArray

string

設定為 jsonArray 以將 JSON 陣列的個別專案擷取為個別檔。

jsonLines

string

設定為 jsonLines 以擷取個別 JSON 實體,並以新行分隔為個別檔。

text

string

設定為文字,以改善 Blob 記憶體中純文字檔案的索引編製效能。

BlobIndexerPDFTextRotationAlgorithm

決定從 Azure Blob 記憶體中的 PDF 檔案擷取文字的演算法。

名稱 類型 Description
detectAngles

string

可能會從已旋轉文字的 PDF 檔案產生更好且更容易閱讀的文字擷取。 請注意,使用此參數時,效能速度可能會影響很小。 此參數僅適用於 PDF 檔案,且僅適用於具有內嵌文字的 PDF。 如果旋轉的文字出現在 PDF 的內嵌影像內,則不適用此參數。

none

string

利用一般文字擷取。 這是預設值。

ErrorAdditionalInfo

資源管理錯誤其他資訊。

名稱 類型 Description
info

object

其他資訊。

type

string

其他信息類型。

ErrorDetail

錯誤詳細數據。

名稱 類型 Description
additionalInfo

ErrorAdditionalInfo[]

錯誤其他資訊。

code

string

錯誤碼。

details

ErrorDetail[]

錯誤詳細數據。

message

string

錯誤訊息。

target

string

錯誤目標。

ErrorResponse

錯誤回應

名稱 類型 Description
error

ErrorDetail

error 物件。

FieldMapping

定義數據源中的欄位與索引中目標欄位之間的對應。

名稱 類型 Description
mappingFunction

FieldMappingFunction

在編制索引之前,要套用至每個來源域值的函式。

sourceFieldName

string

數據源中的功能變數名稱。

targetFieldName

string

索引中目標欄位的名稱。 默認與來源功能變數名稱相同。

FieldMappingFunction

表示在編製索引之前,從數據源轉換值的函式。

名稱 類型 Description
name

string

欄位對應函式的名稱。

parameters

object

要傳遞至函式的參數名稱/值組字典。 每個值都必須是基本類型。

IndexerExecutionEnvironment

指定索引器應該執行的環境。

名稱 類型 Description
private

string

表示索引器應該使用專為搜尋服務布建的環境來執行。 只有當索引器需要透過共用的私人鏈接資源安全地存取資源時,才應該指定為執行環境。

standard

string

表示搜尋服務可以判斷索引器應該執行的位置。 當未指定任何專案且為建議值時,這是默認環境。

IndexingParameters

表示索引器執行的參數。

名稱 類型 預設值 Description
batchSize

integer

從數據源讀取並編製索引做為單一批次的項目數目,以改善效能。 預設值取決於數據源類型。

configuration

IndexingParametersConfiguration

索引器特定組態屬性的字典。 每個名稱都是特定屬性的名稱。 每個值都必須是基本類型。

maxFailedItems

integer

0

索引器執行失敗的項目數目上限,仍視為成功。 -1 表示沒有限制。 預設值為 0。

maxFailedItemsPerBatch

integer

0

單一批次中無法為批次編製索引但仍視為成功的項目數目上限。 -1 表示沒有限制。 預設值為 0。

IndexingParametersConfiguration

索引器特定組態屬性的字典。 每個名稱都是特定屬性的名稱。 每個值都必須是基本類型。

名稱 類型 預設值 Description
allowSkillsetToReadFileData

boolean

False

如果為 true,將會建立路徑 /document/file_data,代表從 Blob 資料源下載的源文件數據。 這可讓您將源文件數據傳遞至自定義技能,以在擴充管線內處理,或傳遞至檔擷取技能。

dataToExtract

BlobIndexerDataToExtract

contentAndMetadata

指定要從 Azure Blob 記憶體擷取的數據,並在 「imageAction」 設定為 「none」 以外的值時,告知索引器要從影像內容中擷取哪些數據。 這適用於.PDF或其他應用程式中的內嵌影像內容,或 Azure Blob 中的 .jpg 和 .png等圖像檔。

delimitedTextDelimiter

string

針對 CSV Blob,指定 CSV 檔案的行尾單一字元分隔符,其中每一行都會啟動新檔(例如 “|” )。

delimitedTextHeaders

string

針對 CSV Blob,指定以逗號分隔的數據行標頭清單,適用於將來源欄位對應至索引中的目的地欄位。

documentRoot

string

針對 JSON 陣列,假設有結構化或半結構化檔,您可以使用這個屬性來指定數位的路徑。

excludedFileNameExtensions

string

從 Azure Blob 記憶體處理時,要忽略的擴展名逗號分隔清單。 例如,您可以排除在編製索引期間略過這些檔案的 「.png、 .mp4」。

executionEnvironment

IndexerExecutionEnvironment

standard

指定索引器應該執行的環境。

failOnUnprocessableDocument

boolean

False

針對 Azure Blob,如果您想要在文件索引失敗時繼續編製索引,請將 設定為 false。

failOnUnsupportedContentType

boolean

False

針對 Azure Blob,如果您想要在遇到不支援的內容類型時繼續編製索引,而且您事先不知道所有內容類型(擴展名),請將 設定為 false。

firstLineContainsHeaders

boolean

True

針對 CSV Blob,表示每個 Blob 的第一行 (非空白) 行包含標頭。

imageAction

BlobIndexerImageAction

none

決定如何處理 Azure Blob 記憶體中的內嵌影像和映像檔案。 將 「imageAction」 組態設定為 「none」 以外的任何值,需要技能集也附加至該索引器。

indexStorageMetadataOnlyForOversizedDocuments

boolean

False

針對 Azure Blob,請將此屬性設定為 true,以針對太大而無法處理的 Blob 內容編制記憶體元數據的索引。 預設會將超大的 Blob 視為錯誤。 如需 Blob 大小的限制,請參閱 https://learn.microsoft.com/azure/search/search-limits-quotas-capacity

indexedFileNameExtensions

string

從 Azure Blob 記憶體處理時要選取的擴展名逗號分隔清單。 例如,您可以將索引編製焦點放在特定應用程式檔 「.docx、.pptx、.msg」,以特別包含這些文件類型。

parsingMode

BlobIndexerParsingMode

default

表示從 Azure Blob 數據源編製索引的剖析模式。

pdfTextRotationAlgorithm

BlobIndexerPDFTextRotationAlgorithm

none

決定從 Azure Blob 記憶體中的 PDF 檔案擷取文字的演算法。

queryTimeout

string

00:05:00

針對以 「hh:mm:ss」 格式指定的 Azure SQL 資料庫數據源,增加超過 5 分鐘預設值的逾時。

IndexingSchedule

表示索引器執行的排程。

名稱 類型 Description
interval

string

索引器執行之間的時間間隔。

startTime

string

索引器應該開始執行的時間。

SearchIndexer

表示索引器。

名稱 類型 預設值 Description
@odata.etag

string

索引器 ETag。

dataSourceName

string

這個索引器從中讀取數據的數據源名稱。

description

string

索引器的描述。

disabled

boolean

False

值,指出索引器是否已停用。 默認值為 false。

encryptionKey

SearchResourceEncryptionKey

您在 Azure Key Vault 中建立的加密金鑰描述。 當您想要完全保證沒有人,甚至沒有Microsoft,可以解密時,此密鑰可用來為索引器定義提供額外的待用加密層級(以及索引器執行狀態)。 加密索引器定義之後,它一律會保持加密狀態。 搜尋服務會忽略將此屬性設定為 null 的嘗試。 如果您想要輪替加密金鑰,您可以視需要變更此屬性;您的索引器定義(和索引器執行狀態)將不會受到影響。 使用客戶管理的金鑰加密不適用於免費搜尋服務,而且僅適用於 2019 年 1 月 1 日或之後建立的付費服務。

fieldMappings

FieldMapping[]

定義數據源中的欄位與索引中對應目標欄位之間的對應。

name

string

索引器的名稱。

outputFieldMappings

FieldMapping[]

輸出欄位對應會在擴充之後套用,並在編製索引之前立即套用。

parameters

IndexingParameters

索引器執行的參數。

schedule

IndexingSchedule

這個索引器排程。

skillsetName

string

使用此索引器執行的技能集名稱。

targetIndexName

string

這個索引器寫入數據的索引名稱。

SearchResourceEncryptionKey

Azure Key Vault 中客戶管理的加密密鑰。 您建立和管理的金鑰可用來加密或解密待用數據,例如索引和同義字對應。

名稱 類型 Description
accessCredentials

AzureActiveDirectoryApplicationCredentials

用來存取 Azure Key Vault 的選擇性 Azure Active Directory 認證。 如果改用受控識別,則不需要。

keyVaultKeyName

string

要用來加密待用數據的 Azure Key Vault 金鑰名稱。

keyVaultKeyVersion

string

要用來加密待用數據的 Azure Key Vault 金鑰版本。

keyVaultUri

string

Azure Key Vault 的 URI,也稱為 DNS 名稱,其中包含用來加密待用數據的密鑰。 範例 URI 可能會 https://my-keyvault-name.vault.azure.net