ElasticSearch Usuń pole

ElasticSearch Usuń pole

„Pracując z indeksami Elasticarach, możesz napotkać instancję, w której musisz usunąć pole z istniejącego dokumentu. Niestety, ElasticSearch nie zawiera natywnego żądania, którego możemy użyć do wykonania wspomnianej akcji.

Możemy jednak użyć interfejsu API aktualizacji dokumentu i przekazać skrypt, który pozwala nam usunąć pole na podstawie jego nazwy."

NOTATKA: Ten proces wymaga podstawowej wiedzy na temat scenariuszy ElasticSearch i interfejsu API aktualizacji dokumentów. Zapraszam do odkrywania dokumentów lub naszych samouczków na ten temat, aby dowiedzieć się więcej.

Zanurzmy się.

Sprawdź, czy dokument istnieje

Przed usunięciem pola z konkretnego dokumentu dobrze jest upewnić się, że dokument docelowy istnieje w indeksie.

Możemy użyć interfejsu API wyszukiwania, aby pobrać dokument docelowy.

Załóżmy na przykład, że mamy indeks kibana_sample_logs_data. Możemy wyszukać indeks dokumentu zawierającego określony adres IP.

NOTATKA: Powyższy przykład jest używany tylko do celów ilustracyjnych. Możesz użyć różnych metod, aby sprawdzić, czy konkretny dokument jest dostępny w indeksie.

curl -xget "http: // localhost: 9200/kibana_sample_data_logs/_search" -h "kbn -xsrf: raportowanie" -h "content -typ: application/json" -d '

„Rozmiar”: 0,
„Zapytanie”: „mecz”:
„IP”: „171.24.97.162 "

'

Wynikowe wyjście:


„wziął”: 3,
„timed_out”: false,
„_Shards”:
„Total”: 1,
„Sukces”: 1,
„Skiped”: 0,
„nieudany”: 0
,
„Hits”:
"całkowity":
„Wartość”: 17,
„Relacja”: „EQ”
,
„Max_Score”: null,
„Hits”: []

Następnie prosty skrypt może usunąć pole docelowe z dokumentu. Zacznij od zalogowania się do konsoli Kibana i uruchom polecenie:

curl -xpost "http: // localhost: 9200/kibana_sample_data_logs/_update/5pa49iibktjaz6ttsib5" -h "kbn -xsrf: raportowanie" -h "content -type: Application/json" -d '

„Skrypt”: „CTX._źródło.Usuń ('\ "ip' \") ""
'

Powyższe żądanie używa bezbolesnego skryptu kontekstowego do aktualizacji dokumentu i usunięcia pola „IP” z określonym identyfikatorem.

Wyjście:


„_INDEX”: „kibana_sample_data_logs”,
„_id”: „5pa49iibktjaz6ttsib5”,
""_wersja 2,
„Wynik”: „Zaktualizowano”,
„_Shards”:
„Total”: 2,
„Sukces”: 2,
„nieudany”: 0
,
„_seq_no”: 14074,
„_primary_term”: 1

Po zaktualizowaniu dokumentu możesz zweryfikować, uruchamiając zapytanie.:

curl -xget ""http: // localhost: 9200/kibana_sample_data_logs/_doc/5pa49iibktjaz6ttsib5"" -h ""kbn -xsrf: raportowanie""

Powyższe żądanie powinno zwrócić dane przechowywane w dokumencie z określonym identyfikatorem.

Możemy sprawdzić, czy pole IP nie jest już w dokumencie.

Wniosek

W tym artykule nauczyłeś się korzystać z możliwości scenariuszy ElasticSearch do usunięcia pola z istniejącego dokumentu.

Dziękuje za przeczytanie!!

"