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 |
您在 Azure Key Vault 中建立的加密金鑰描述。 當您想要完全保證沒有人,甚至沒有Microsoft,可以解密時,此密鑰可用來為索引器定義提供額外的待用加密層級(以及索引器執行狀態)。 加密索引器定義之後,它一律會保持加密狀態。 搜尋服務會忽略將此屬性設定為 null 的嘗試。 如果您想要輪替加密金鑰,您可以視需要變更此屬性;您的索引器定義(和索引器執行狀態)將不會受到影響。 使用客戶管理的金鑰加密不適用於免費搜尋服務,而且僅適用於 2019 年 1 月 1 日或之後建立的付費服務。 |
||
fieldMappings |
定義數據源中的欄位與索引中對應目標欄位之間的對應。 |
||
outputFieldMappings |
輸出欄位對應會在擴充之後套用,並在編製索引之前立即套用。 |
||
parameters |
索引器執行的參數。 |
||
schedule |
這個索引器排程。 |
||
skillsetName |
string |
使用此索引器執行的技能集名稱。 |
回應
名稱 | 類型 | Description |
---|---|---|
201 Created | ||
Other Status Codes |
錯誤回應。 |
範例
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 |
---|---|
Azure |
為搜尋服務建立之已註冊應用程式的認證,用於對儲存在 Azure Key Vault 中的加密密鑰進行驗證存取。 |
Blob |
指定要從 Azure Blob 記憶體擷取的數據,並在 「imageAction」 設定為 「none」 以外的值時,告知索引器要從影像內容中擷取哪些數據。 這適用於.PDF或其他應用程式中的內嵌影像內容,或 Azure Blob 中的 .jpg 和 .png等圖像檔。 |
Blob |
決定如何處理 Azure Blob 記憶體中的內嵌影像和映像檔案。 將 「imageAction」 組態設定為 「none」 以外的任何值,需要技能集也附加至該索引器。 |
Blob |
表示從 Azure Blob 數據源編製索引的剖析模式。 |
Blob |
決定從 Azure Blob 記憶體中的 PDF 檔案擷取文字的演算法。 |
Error |
資源管理錯誤其他資訊。 |
Error |
錯誤詳細數據。 |
Error |
錯誤回應 |
Field |
定義數據源中的欄位與索引中目標欄位之間的對應。 |
Field |
表示在編製索引之前,從數據源轉換值的函式。 |
Indexer |
指定索引器應該執行的環境。 |
Indexing |
表示索引器執行的參數。 |
Indexing |
索引器特定組態屬性的字典。 每個名稱都是特定屬性的名稱。 每個值都必須是基本類型。 |
Indexing |
表示索引器執行的排程。 |
Search |
表示索引器。 |
Search |
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 |
錯誤其他資訊。 |
|
code |
string |
錯誤碼。 |
details |
錯誤詳細數據。 |
|
message |
string |
錯誤訊息。 |
target |
string |
錯誤目標。 |
ErrorResponse
錯誤回應
名稱 | 類型 | Description |
---|---|---|
error |
error 物件。 |
FieldMapping
定義數據源中的欄位與索引中目標欄位之間的對應。
名稱 | 類型 | Description |
---|---|---|
mappingFunction |
在編制索引之前,要套用至每個來源域值的函式。 |
|
sourceFieldName |
string |
數據源中的功能變數名稱。 |
targetFieldName |
string |
索引中目標欄位的名稱。 默認與來源功能變數名稱相同。 |
FieldMappingFunction
表示在編製索引之前,從數據源轉換值的函式。
名稱 | 類型 | Description |
---|---|---|
name |
string |
欄位對應函式的名稱。 |
parameters |
object |
要傳遞至函式的參數名稱/值組字典。 每個值都必須是基本類型。 |
IndexerExecutionEnvironment
指定索引器應該執行的環境。
名稱 | 類型 | Description |
---|---|---|
private |
string |
表示索引器應該使用專為搜尋服務布建的環境來執行。 只有當索引器需要透過共用的私人鏈接資源安全地存取資源時,才應該指定為執行環境。 |
standard |
string |
表示搜尋服務可以判斷索引器應該執行的位置。 當未指定任何專案且為建議值時,這是默認環境。 |
IndexingParameters
表示索引器執行的參數。
名稱 | 類型 | 預設值 | Description |
---|---|---|---|
batchSize |
integer |
從數據源讀取並編製索引做為單一批次的項目數目,以改善效能。 預設值取決於數據源類型。 |
|
configuration |
索引器特定組態屬性的字典。 每個名稱都是特定屬性的名稱。 每個值都必須是基本類型。 |
||
maxFailedItems |
integer |
0 |
索引器執行失敗的項目數目上限,仍視為成功。 -1 表示沒有限制。 預設值為 0。 |
maxFailedItemsPerBatch |
integer |
0 |
單一批次中無法為批次編製索引但仍視為成功的項目數目上限。 -1 表示沒有限制。 預設值為 0。 |
IndexingParametersConfiguration
索引器特定組態屬性的字典。 每個名稱都是特定屬性的名稱。 每個值都必須是基本類型。
名稱 | 類型 | 預設值 | Description |
---|---|---|---|
allowSkillsetToReadFileData |
boolean |
False |
如果為 true,將會建立路徑 /document/file_data,代表從 Blob 資料源下載的源文件數據。 這可讓您將源文件數據傳遞至自定義技能,以在擴充管線內處理,或傳遞至檔擷取技能。 |
dataToExtract | 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 | standard |
指定索引器應該執行的環境。 |
|
failOnUnprocessableDocument |
boolean |
False |
針對 Azure Blob,如果您想要在文件索引失敗時繼續編製索引,請將 設定為 false。 |
failOnUnsupportedContentType |
boolean |
False |
針對 Azure Blob,如果您想要在遇到不支援的內容類型時繼續編製索引,而且您事先不知道所有內容類型(擴展名),請將 設定為 false。 |
firstLineContainsHeaders |
boolean |
True |
針對 CSV Blob,表示每個 Blob 的第一行 (非空白) 行包含標頭。 |
imageAction | 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 | default |
表示從 Azure Blob 數據源編製索引的剖析模式。 |
|
pdfTextRotationAlgorithm | 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 |
您在 Azure Key Vault 中建立的加密金鑰描述。 當您想要完全保證沒有人,甚至沒有Microsoft,可以解密時,此密鑰可用來為索引器定義提供額外的待用加密層級(以及索引器執行狀態)。 加密索引器定義之後,它一律會保持加密狀態。 搜尋服務會忽略將此屬性設定為 null 的嘗試。 如果您想要輪替加密金鑰,您可以視需要變更此屬性;您的索引器定義(和索引器執行狀態)將不會受到影響。 使用客戶管理的金鑰加密不適用於免費搜尋服務,而且僅適用於 2019 年 1 月 1 日或之後建立的付費服務。 |
||
fieldMappings |
定義數據源中的欄位與索引中對應目標欄位之間的對應。 |
||
name |
string |
索引器的名稱。 |
|
outputFieldMappings |
輸出欄位對應會在擴充之後套用,並在編製索引之前立即套用。 |
||
parameters |
索引器執行的參數。 |
||
schedule |
這個索引器排程。 |
||
skillsetName |
string |
使用此索引器執行的技能集名稱。 |
|
targetIndexName |
string |
這個索引器寫入數據的索引名稱。 |
SearchResourceEncryptionKey
Azure Key Vault 中客戶管理的加密密鑰。 您建立和管理的金鑰可用來加密或解密待用數據,例如索引和同義字對應。
名稱 | 類型 | Description |
---|---|---|
accessCredentials |
用來存取 Azure Key Vault 的選擇性 Azure Active Directory 認證。 如果改用受控識別,則不需要。 |
|
keyVaultKeyName |
string |
要用來加密待用數據的 Azure Key Vault 金鑰名稱。 |
keyVaultKeyVersion |
string |
要用來加密待用數據的 Azure Key Vault 金鑰版本。 |
keyVaultUri |
string |
Azure Key Vault 的 URI,也稱為 DNS 名稱,其中包含用來加密待用數據的密鑰。 範例 URI 可能會 |