Jak usunąć stare dane z elastycznego indeksu wyszukiwania, ponieważ indeks zawiera dużą ilość danych wstawianych każdego dnia.Usuwanie lub usuwanie starych danych z elastycznego wyszukiwania
Odpowiedz
Możesz to zrobić za pomocą wtyczki delete by query.
Zakładając, że masz jakieś timestamp
lub creation date
pól w indeksie, zapytanie będzie wyglądał jak ten
DELETE /your_index/your_type/_query
{
"query": {
"range": {
"timestamp": {
"lte": "now-10y"
}
}
}
}
spowoduje to usunięcie zapisów starszych niż 10 lat.
Mam nadzieję, że to pomoże
Czy jest jakiś sposób, aby to zrobić w formie skryptu, więc nie musimy ręcznie uruchamiać zapytania? – sri
Czy to zapytanie kasowania całkowicie kasuje rekordy z indeksu i pozwala na wstawienie nowych rekordów – sri
Możesz ustawić w górę 'zadanie cron' do zrobienia tego codziennie, rekordy ** nie ** są wymazywane po wykonaniu delete, są ** oznaczone ** jako usunięte i podczas scalania segmentów są faktycznie usuwane, możesz zobaczyć wzrost rozmiaru indeksu po Usunięcie lub aktualizacja, możesz użyć opcji [wymuszaj scalanie] (https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-forcemerge.html), aby zoptymalizować indeks. – ChintanShah25
dane Split do codziennych indeksów i używać jako aliasu starej nazwy indeksu. następnie usuń każdy indeks codziennie. podobnie jak logstash:
Indeksy dzienne: logstash-20151011
, logstash-20151012
, logstash-20151013
.
Pełna alias: logstash
Następnie codziennie usuń ostatni indeks.
Korzystanie z wielu indeksów jest drogą do zrobienia. Aby usunąć starsze indeksy, możesz użyć kustosza: https://www.elastic.co/guide/en/elasticsearch/client/curator/current/index.html – slim
Dlaczego to pytanie zostało odrzucone? – slim