在Azure搜索ARM模板中添加索引创建/配置

时间:2016-08-11 12:49:12

标签: azure azure-search arm-template

有通过ARM模板创建Azure搜索服务的方法(例如:https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/101-azure-search-create/azuredeploy.json)。

我想知道的是有一种方法可以在ARM模板中定义特定索引(字段,数据源,索引器等)吗?

我知道您可以使用REST服务来创建和修改索引,但在创建资源组和Azure搜索服务之后,我不希望单独的脚本/应用程序处理它。

3 个答案:

答案 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上添加一项,以帮助我们确定优先顺序。