更新 Azure AI 搜尋服務 REST API (索引)
修改現有的索引通常需要索引 卸除和重建,但下列架構變更除外:
將新欄位新增至欄位集合
將新建立的欄位新增至 建議工具
新增或變更 評分配置檔
新增或變更 加密金鑰
新增 自定義分析器
變更 CORS 選項
使用下列三項修改之一變更現有的欄位:
- 變更
retrievable
(值為 true 或 false) - 變更
searchAnalyzer
查詢時間所使用的 () - 在查詢時間) 新增或變更
synonymMaps
使用的 (
- 變更
若要新增這些更新,請將索引名稱放在要求 URI 上。 在要求本文中,使用修改來包含完整指定的索引定義。
PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]
Content-Type: application/json
api-key: [admin key]
現有的欄位和大部分欄位屬性都無法刪除或變更,也無法將欄位新增至建議工具。 只有新建立的欄位可以新增至 suggester
。
新增欄位時,所有現有的文件都會自動取得該欄位的 Null 值。 在發生兩件事之一之前,不會耗用其他儲存空間: 使用合併) 或新增檔,為新的字段提供值 (。
現有的分析器、令牌化程式、令牌篩選和字元篩選無法改變。 只有在索引更新要求中開啟旗標時 allowIndexDowntime
,才能將新索引新增至現有的索引。 將初始向量欄位新增至使用不支援向量搜尋的 API 建立的預先存在的索引時,會套用相同的規則,特別是 REST API 版本 2023-07-01 Preview 之前。
PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]&allowIndexDowntime=true
此作業會讓索引離線幾秒鐘。 索引編製和查詢要求在索引離線時失敗。 索引重新上線之後,效能和寫入作業可能會暫時受損數分鐘。
URI 參數
參數 | Description |
---|---|
服務名稱 | 必要。 將此設定為搜尋服務的唯一用戶定義名稱。 |
索引名稱 | 必要。 要求 URI 指定要更新的索引名稱。 |
api-version | 必要。 如需支援的版本清單,請參閱 API 版本 。 |
allowIndexDowntime | 選擇性。 預設為 False。 針對特定更新設定為 true,例如新增或修改分析器、Tokenizer、令牌篩選、char 篩選或相似性屬性。 索引會在更新期間離線,通常不超過數秒。 |
要求標頭
下表說明必要及選用的要求標頭。
欄位 | Description |
---|---|
Content-Type | 必要。 請設為 application/json |
api-key | 如果您使用 Azure 角色 ,而且要求會提供持有人令牌,則為選擇性,否則需要密鑰。 更新要求必須包含 api-key 設定為系統管理員密鑰的標頭 (,而不是查詢密鑰) 。 如需詳細資訊 ,請參閱使用密鑰驗證連線到 Azure AI 搜尋 服務。 |
要求本文
要求本文語法與 建立索引相同。
當您更新現有的索引時,本文必須包含完整的架構定義,包括您想要保留的任何原始定義。 一般而言,更新的最佳模式是使用 GET 擷取索引定義、修改它,然後使用 PUT 加以更新。
回應
如果是成功的要求,您應會看見「204 沒有內容」。
根據預設,回應本文是空的。 不過,如果 Prefer
要求標頭設定 return=representation
為 ,則回應本文會包含更新索引的 JSON。 在此情況下,成功狀態代碼為 「200 OK」。。