如何在Azure Search REST API上使用“ id”删除特定文档?

时间:2019-01-24 04:26:38

标签: azure azure-search

我想知道如何删除Azure搜索索引中的特定文档。

我想使用“ id”通过REST API删除文档。我已经搜索过,但找不到路。

{
    "@odata.context": "https://xxxx/$metadata#docs(*)",
    "value": [
        {
            "@search.score": 1,
            "id": "16",
            "questions": [
                "Question"
            ],
            "answer": "Answer",
            "source": "https://azure.microsoft.com/ja-jp/support/faq/",
            "keywords": [],
            "alternateQuestions": null
 },

例如,我只想删除id为16的文档。我不想删除整个索引,只想删除文档。

如果有人知道该怎么做,请提供一个REST API示例。

1 个答案:

答案 0 :(得分:1)

有关如何在Azure搜索中删除“文档”的文档可以为found here.,因为您要删除与id == 16相关联的所有字段,因此,这正是您要寻找的。

要针对您的具体情况更具体,您将希望对以下URI发出POST请求,并在其中填写适当的服务名称,索引名称和api管理密钥(作为标头):

POST https://[service name].search.windows.net/indexes/[index name]/docs/index?api-version=2017-11-11  
Content-Type: application/json   
api-key: [admin key]  

并带有以下请求正文:

{  
  "value": [  
    {  
      "@search.action": "delete",  
      "id": "16"  
    }  
  ]  
}

如果请求返回200,则文档将成功从索引中删除。

请注意,您可以通过在JSON数组中包含更多对象(每个对象具有不同的“ id”)来删除同一请求中的多个文档。这比一次删除它们要有效。