【问题标题】:How to delete specific document using "id" on Azure Search REST API?如何在 Azure 搜索 REST API 上使用“id”删除特定文档?
【发布时间】:2020-02-28 16:43:25
【问题描述】:

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

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

{
    "@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 示例。

【问题讨论】:

  • 你的意思是删除一个字段,还是删除一个文档?
  • @BruceJohnston 每个“id”都与“questions”、“answer”和“source”等相关联,对吧?我想要做的是,如果我指定 id(例如:16),我只想删除 16 的块。很抱歉,我不确定该块是否称为“字段”或“文档”。我认为该块称为“字段”。
  • 在这种情况下,我也不知道您所说的“阻止”是什么意思。在 Azure 搜索中,具有关键字段的 JSON 对象(在您的情况下,我假设它是“id”)称为“文档”,而对象的属性(“id”、“questions”、“answer”、 “源”等)称为“字段”。这分别类似于 SQL 数据库中的行和列。可以删除文档和字段,但过程有很大不同,所以我需要知道你指的是哪一个,然后才能回答。
  • 我想删除“文档”。如果我指定例如 id==16,我想删除与指定 id 相关的 { } 内的整个 JSON 对象。预期结果是“search.score”、“id”、“questions”、“answer”、“source”、“keywords”和“alternateQuestions”被完全删除,而其他文档仍然存在。我很抱歉我的英语不好,顺便说一句。
  • 感谢您的澄清!

标签: azure azure-cognitive-search


【解决方案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”。这比一次删除一个更有效。

【讨论】:

  • 收到“请求无效。详细信息:操作:0:文档密钥不能丢失或为空。”错误信息。有什么建议吗?
  • @ChandanYS 这能解决您的问题吗?它必须是天蓝色搜索的索引键。 stackoverflow.com/questions/36391662/…
  • @LosManos 是的,它已解决。在我的情况下,id 不是索引键。后来我将 id 更改为我的索引键然后它起作用了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-25
  • 2020-07-13
  • 2023-01-05
  • 1970-01-01
  • 2019-07-16
  • 2015-05-19
  • 1970-01-01
相关资源
最近更新 更多