【问题标题】:Azure cognitive search index API delete by file nameAzure 认知搜索索引 API 按文件名删除
【发布时间】:2022-01-15 11:02:26
【问题描述】:

我从 Azure 存储帐户中删除了一个与我使用容器资源管理器进行认知搜索相关联的文件,因为在我的 web 应用程序中搜索该文件时,索引器仍会找到该文件,我了解到我必须使用索引 API 删除该文件,因为它仍然存在,确实,当我查看 Azure 索引时,会显示以下响应:

{
  "@search.score": 7.9088755,
  "id": "aHR0cHM6Ly9kYXRhbWluaW5nc2EuYmxvYi5jb3JlLndpbmRvd3MubmV0L2RvY3VtZW50YWwvcGxhbl9wcmVtaXVtX3YxODZ2Mi5w****",
  "fileName": "deleted_file.pdf"
}

但是当我尝试通过 Postman 使用删除 Api 时,正如文档所说,使用该 ID:

POST https://myservicename.search.windows.net/indexes/myindexname/docs/index?api-version=2020-06-30   
Content-Type: application/json   
api-key: [my admin key]  
{  
  "value": [  
    {  
      "@search.action": "delete",  
      "id": "aHR0cHM6Ly9kYXRhbWluaW5nc2EuYmxvYi5jb3JlLndpbmRvd3MubmV0L2RvY3VtZW50YWwvcGxhbl9wcmVtaXVtX3YxODZ2Mi5w****"
    }
  ]  
} 

我收到“404 未找到”:

{
    "error": {
        "code": "",
        "message": "No HTTP resource was found that matches the request URI 'https://myservicename.search.windows.net/indexes('myindexname')/docs?api-version=2020-06-30'."
    }
}

另外,尝试使用这样的文件名:

POST https://myservicename.search.windows.net/indexes/myindexname/docs/index?api-version=2020-06-30   
Content-Type: application/json   
api-key: [my admin key]  
{  
  "value": [  
    {  
      "@search.action": "delete",  
      "fileName": "deleted_file.pdf"
    }
  ]  
} 

得到了相同的结果,不知道为什么它在括号内使用了索引,网址和上面一样...我也已经对索引启用了软删除策略,文件从存储中删除但仍然存在于索引中.. .任何想法?

【问题讨论】:

    标签: azure-blob-storage azure-storage azure-cognitive-search


    【解决方案1】:

    确保您的Azure Storage 帐户没有启用ADLS Gen2。此外,如果您在软删除 blob 后启用了软删除策略,请确保更改 blob LastModified 时间戳,以便策略能够将更改应用到索引 (https://docs.microsoft.com/en-us/azure/search/search-howto-index-changed-deleted-blobs)

    【讨论】:

    • 找到了解决办法,感谢您的帮助!
    【解决方案2】:

    实际上找到了解决方案,从索引查询菜单中的 Azure 认知服务门户中提取的 id 工作正常,也需要使用预览版修改 url。我把它贴在这里以防它对其他人有帮助:

    POST https://myservicename.search.windows.net/indexes/myindexname/docs/index?api-version=2020-06-30-Preview   
    Content-Type: application/json   
    api-key: [my admin key]  
    {  
      "value": [  
        {  
          "@search.action": "delete",  
          "id": "doc id extracted from index"
        }
      ]  
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-05
      • 2021-04-28
      • 2019-02-14
      • 2020-03-27
      • 1970-01-01
      • 2021-05-24
      • 2021-01-11
      • 1970-01-01
      相关资源
      最近更新 更多