更新 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」。。

另請參閱