Usuwanie rekordów z Algolia na podstawie taksonomii
Podczas pracy z wyszukiwarką Algolia na newsblog.pl i testowania wtyczki Polylang do tłumaczeń, napotkałem nieoczekiwany problem. W wynikach wyszukiwania zaczęły pojawiać się wpisy, które zostały przetłumaczone na inne języki.
Sytuacja ta była niepożądana, dlatego konieczne stało się znalezienie metody na usunięcie tych niechcianych rekordów z indeksu Algolia.
Po zalogowaniu do panelu administracyjnego Algolii, zauważyłem, że przetłumaczone wpisy posiadały przypisaną taksonomię „Francais”.
Niestety, interfejs użytkownika Algolii nie oferuje bezpośredniej możliwości usuwania rekordów. Panel nawigacyjny jest uproszczony i zgodnie z zaleceniami, do zarządzania rekordami należy użyć interfejsu API.
Po przeprowadzeniu analizy, udało mi się wypracować sposób na pozbycie się tych wpisów. Można to zrobić, wykorzystując narzędzie cURL lub klienta HTTP takiego jak Postman.
Przed rozpoczęciem potrzebne będą następujące dane:
- Identyfikator aplikacji Algolia
- Administratorski klucz API
- Nazwa indeksu
Te informacje można znaleźć w panelu Algolii, w zakładce „Ustawienia” >> „Klucze API”.
W pierwszym kroku warto sprawdzić, czy otrzymujemy pożądane rekordy, aby upewnić się, że nie usuniemy czegoś innego. Wykonaj zapytanie:
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"}'
Pamiętaj o zastąpieniu wartości ADMIN_API_KEY, APPLICATION_ID oraz INDEX_NAME swoimi danymi.
Jeśli powyższe zapytanie zwróciło poszukiwane rekordy, możemy z pewnością przejść do ich usunięcia za pomocą następującego zapytania:
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"}'
W przypadku korzystania z Postmana, należy dodać poniższe nagłówki:
- X-Algolia-Application-Id (identyfikator aplikacji)
- X-Algolia-API-Key (klucz API)
Oto przykład pomyślnego usunięcia rekordów:
W moim przypadku celem było usunięcie taksonomii. Jednak za pomocą Algolia API można zarządzać niemal każdym aspektem indeksu. Zachęcam do zapoznania się z oficjalną dokumentacją API Algolii, aby odkryć więcej możliwości.