Podobnie jak wszystkie bazy danych, będziesz tworzyć, pobierać, aktualizować i usuwać rekordy z bazy danych. Jednak w przeciwieństwie do relacyjnych baz danych, ElasticSearch nie zapewnia wbudowany język zapytania, taki jak SQL, CQL itp. Zamiast tego wchodzimy w interakcje z punktami końcowymi API, które ujawnia Elasticsearch, pozwalając nam wykonywać wiele działań z prostymi połączeniami HTTP."
W poście odkryjesz, jak pobierać dokumenty przechowywane w ElasticSearch za pomocą API GET DOMOMAMES.
Składnia API
API Dokument GET Document pozwala nam pobierać dokumenty JSON przechowywane w danym indeksie. Poniższy fragment pokazuje składnię żądania do pobierania dokumentów.
Get /_doc /<_id>
Możesz także użyć metody Head HTTP do weryfikacji dokumentu, zamiast go zwracać. Składnia jest jak pokazana:
GŁOWA/_doc/<_id>
Żądanie przyjmuje następujące parametry:
Żądanie obsługuje również następujące parametry zapytania. Pozwalają one zmodyfikować sposób zachowania interfejsu API i wyniku zapytania. Te parametry obejmują:
Wartość zwracana
Żądanie dokumentu GET będzie miało następujące wartości:
Przykład - Dokument Fetch Fetch Dokument
Poniższy przykład pokazuje, jak pobrać dokument z identyfikatorem „qxya7yib38eq5h5gt9ru” z indeksu o nazwie „kibana_sample_data_logs.'
curl -xget "http: // localhost: 9200/kibana_sample_data_logs/_doc/qxya7yib38eq5h5gt9ru" -h "kbn -xsrf: raportowanie"
Po uruchomieniu powyższego zapytania powinniśmy uzyskać odpowiedź, jak pokazano:
„_INDEX”: „kibana_sample_data_logs”,
„_id”: „Qxya7yib38eq5h5gt9ru”,
"_wersja 1,
„_seq_no”: 2383,
„_primary_term”: 1,
„Znaleziono”: prawda,
"_źródło":
„Agent”: „Mozilla/5.0 (x11; Linux i686) AppleWebkit/534.24 (Khtml, jak gecko) Chrome/11.0.696.50 safari/534.24 ",
„Bajty”: 4447,
„ClientIP”: „70.141.48.11 ”,
„Rozszerzenie”: „Zip”,
„Geo”:
„SrcDest”: „US: BD”,
„SRC”: „Us”,
„Dest”: „BD”,
„Współrzędne”:
„Lat”: 38.14893833,
„Lon”: -89.69870972
,
„Host”: „Artefakty.elastyczny.współ",
„indeks”: „kibana_sample_data_logs”,
„IP”: "70.141.48.11 ”,
„Maszyna”:
„Ram”: 7516192768,
„OS”: „Win 8”
,
„Pamięć”: null,
„Wiadomość”: „70.141.48.11 - - [2018-08-01T12: 14: 55.373Z] "get /kibana /kibana-6.3.2 Windows-X86_64.Zip Http/1.1 „200 4447”-„„ Mozilla/5.0 (x11; Linux i686) AppleWebkit/534.24 (Khtml, jak gecko) Chrome/11.0.696.50 safari/534.24 "",
„phpmemory”: null,
„Polecenie”: „http: // twitter.com/Success/Mary-Weber ",
„Prośba”: „/kibana/kibana-6.3.2 Windows-X86_64.zamek błyskawiczny",
„Odpowiedź”: 200,
„Tagi”: [
"powodzenie",
„Informacje”
],
„Znacznik czasu”: „2022-08-31T12: 14: 55.373Z ",
„URL”: „https: // artefacts.elastyczny.co/pobieranie/kibana/kibana-6.3.2 Windows-X86_64.zamek błyskawiczny",
„UTC_TIME”: „2022-08-31T12: 14: 55.373Z ",
"wydarzenie":
„Zestaw danych”: „próbka_web_logs”
Przykład 2 - Sprawdź, czy istnieje dokument
Możesz użyć metody Head HTTP, aby sprawdzić, czy dokument z określonym identyfikatorem istnieje przed jego pobraniem.
curl -xhead "http: // localhost: 9200/kibana_sample_data_logs/_doc/qxya7yib38eq5h5gt9ru" -h "kbn -xsrf: raportowanie"
Jeśli dokument istnieje w indeksie, żądanie zwraca 200 - OK.
W przeciwnym razie, jeśli dokument nie zostanie znaleziony w określonym indeksie, żądanie zwraca:
„STATHCODE”: 404,
"błąd nie znaleziony",
„Wiadomość”: „404 - nie znaleziono”
Przykład 3 - Pobierz określone pola
Możemy pobrać określone pola dokumentu, ustawiając parametr źródła_includes:
curl -xget "http: // localhost: 9200/kibana_sample_data_logs/_doc/qxya7yib38eq5h5gt9ru?_Source_includes =*.ID, klient, maszyna.OS, odpowiedź „-H” KBN -XSRF: Raportowanie ”
Powyższe żądanie powinno pobrać dokumenty z określonym identyfikatorem i zwrócić tylko identyfikator, klient, system operacyjny i.
Odpowiedź jest taka, jak pokazano:
„_INDEX”: „kibana_sample_data_logs”,
„_id”: „Qxya7yib38eq5h5gt9ru”,
"_wersja 1,
„_seq_no”: 2383,
„_primary_term”: 1,
„Znaleziono”: prawda,
"_źródło":
„ClientIP”: „70.141.48.11 ”,
„Maszyna”:
„OS”: „Win 8”
,
„Odpowiedź”: 200
Wniosek
W tym artykule zbadałeś, jak pobrać dokumenty z indeksu ElasticSearch za pomocą interfejsu API dokumentu GET.