有通过ARM模板创建Azure搜索服务的方法(例如:https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/101-azure-search-create/azuredeploy.json)。
我想知道的是有一种方法可以在ARM模板中定义特定索引(字段,数据源,索引器等)吗?
我知道您可以使用REST服务来创建和修改索引,但在创建资源组和Azure搜索服务之后,我不希望单独的脚本/应用程序处理它。
答案 0 :(得分:4)
+1给Don的评论。您需要使用REST API或.NET SDK创建索引。如果您碰巧使用PowerShell创建服务,您可能会发现以下代码有用,它使用Invoke-RestMethod和一组包含索引架构和一些文档的.JSON文件来调用REST API。
#------------------------#
# Setting up search index#
#------------------------#
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Content-Type", 'application/json')
$headers.Add("api-key", $searchApiKey)
Write-Host
Write-Host "Creating Index..."
$schemaFile = "$(Split-Path $MyInvocation.MyCommand.Path)\zipcodes.schema"
$response = Invoke-RestMethod -TimeoutSec 10000 $searchServiceUrl"/indexes/zipcodes2?api-version=2015-02-28-Preview" -Method Put -Headers $headers -Body "$(get-content $schemaFile)"
Write-Host $response
$jsonFile = "$(Split-Path $MyInvocation.MyCommand.Path)\zipcodes1.json"
Write-Host
Write-Host "Adding Documents from $jsonFile..."
$response = Invoke-RestMethod -TimeoutSec 10000 $searchServiceUrl"/indexes/zipcodes2/docs/index?api-version=2015-02-28-Preview" -Method Post -Headers $headers -Body "$(get-content $jsonFile)"
Write-Host $response
答案 1 :(得分:2)
不,您无法在ARM模板中创建索引。我之前读过的术语是ARM用于管理Azure控制平面。
答案 2 :(得分:1)
Azure Search目前不支持通过ARM模板管理索引。如果此功能对您很重要,请在User Voice上添加一项,以帮助我们确定优先顺序。