Как удалить конкретный документ с помощью «id» в API поиска REST Azure? - PullRequest
0 голосов
/ 24 января 2019

Я хотел бы знать, как удалить конкретный документ из индекса поиска 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
 },

Например, я хотел бы удалить только документ с идентификатором 16. Я не хочу удалять весь индекс, просто хочу удалить документ.

Если кто-то знает, как это сделать, предоставьте образец REST API.

1 Ответ

0 голосов
/ 24 января 2019

Документация по удалению «документов» в Поиске Azure может быть найдена здесь . Поскольку вы хотите удалить все поля, связанные с id == 16, это должно быть то, что вы ищете.

Чтобы быть более точным в вашей конкретной ситуации, вы захотите отправить POST-запрос к следующему URI, указав соответствующее имя службы, имя индекса и ключ администратора 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 больше объектов, каждый из которых имеет свой «идентификатор».Это эффективнее, чем удалять их по одному.

...