Algolia에서 불필요한 분류 항목 삭제 방법
저희 koreantech.org에서는 검색 엔진으로 Algolia를 활용하고 있습니다. 최근 Polylang 플러그인을 이용한 번역 기능을 테스트하는 과정에서, 번역된 게시물들이 검색 결과에 예기치 않게 노출되는 현상을 발견했습니다.

이는 원치 않는 상황이었으며, Algolia에서 해당 레코드들을 제거할 방법을 찾아야 했습니다.
Algolia 대시보드에 접속해 보니, 번역된 게시물에는 ‘Francais’라는 분류가 추가되어 있는 것을 확인할 수 있었습니다.

하지만, 대시보드 자체에서는 이러한 레코드를 직접 삭제하는 기능이 제공되지 않았습니다. Algolia 대시보드는 매우 기본적인 기능만을 제공하며, 대부분의 레코드 관리는 API를 통해 이루어지도록 설계되어 있습니다.
몇 차례의 검색 끝에, HTTP 클라이언트(cURL 또는 Postman 등)를 사용하여 이러한 항목들을 삭제하는 방법을 알아낼 수 있었습니다.
삭제 작업을 진행하기 위해서는 아래 세 가지 정보가 필요합니다.
- Algolia 애플리케이션 ID
- 관리 API 키
- 인덱스 이름
위의 정보는 Algolia 대시보드의 설정 >> API 키 메뉴에서 찾을 수 있습니다.
가장 먼저, 다른 레코드를 삭제하는 실수를 방지하기 위해, 삭제하고자 하는 레코드들이 정확히 식별되는지 확인해 보겠습니다.
curl -X POST \
-H "X-Algolia-API-Key: ADMIN_API_KEY" \
-H "X-Algolia-Application-Id: APPLICATION_ID" \
"https://APPLICATION_ID.algolia.net/1/indexes/INDEX_NAME/query" \
--data '{"query": "", "filters": "taxonomies.language: Français"}'
위 코드에서 ADMIN_API_KEY, APPLICATION_ID, INDEX_NAME을 실제 값으로 변경해야 합니다.
위의 쿼리를 실행하여 원하는 레코드가 반환되는 것을 확인했다면, 이제 아래 쿼리를 사용하여 레코드를 삭제할 수 있습니다.
curl -X POST \
-H "X-Algolia-API-Key: ADMIN_API_KEY" \
-H "X-Algolia-Application-Id: APPLICATION_ID" \
"https://APPLICATION_ID.algolia.net/1/indexes/INDEX_NAME/deleteByQuery" \
--data '{"query": "", "filters": "taxonomies.language: Français"}'
Postman을 사용하는 경우에는 다음과 같은 헤더를 추가해야 합니다.
- X-Algolia-Application-Id
- X-Algolia-API-Key

성공적으로 삭제가 완료되면 다음과 같은 응답을 받게 됩니다.

저의 경우 분류 항목을 삭제하는 것이 목표였지만, Algolia API를 이용하면 거의 모든 데이터를 관리할 수 있습니다. 더 많은 정보를 원하시면, 공식 삭제 레코드 API 참조 문서를 참고하시기 바랍니다.