ElasticSearch Uzyskaj dokument

ElasticSearch Uzyskaj dokument
„Elasticsearch to popularna i potężna wyszukiwarka, która może obsługiwać duże ilości danych. W tym sensie ElasticSearch może być powiązany z relacyjną bazą danych, ponieważ pozwala na przechowywanie danych.

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:

  1. - Określa nazwę indeksu, w którym przechowywano dokument docelowy.
  2. - Określa unikalny identyfikator dokumentu docelowego.

Żądanie obsługuje również następujące parametry zapytania. Pozwalają one zmodyfikować sposób zachowania interfejsu API i wyniku zapytania. Te parametry obejmują:

  1. preferencja - definiuje docelowy węzeł/odłamek, na którym przeprowadzane jest pobieranie.
  2. W czasie rzeczywistym-zapewnia, że ​​wynik jest absolutnym w czasie rzeczywistym, w przeciwieństwie do domyślnego, który jest bliski czasu rzeczywistego.
  3. Odświeżenie - pozwala żądanie czekać na okresowe odświeżenie elasticearch. Ten parametr może również pozwolić żądaniu odświeżyć odłamek przed wykonaniem operacji pobierania.
  4. routing - określa operacje trasy do określonego węzła/odłamka.
  5. _Source - wartość logiczna, która określa, czy żądanie zwraca złożone _source.
  6. _Source_Excludes - Określa listę pól źródłowych wykluczonych z wyniku.
  7. _Source_includes - Pola źródłowe zawarte w wyniku.
  8. Wersja - określa numer wersji do zarządzania współbieżnościami.

Wartość zwracana

Żądanie dokumentu GET będzie miało następujące wartości:

  1. _INDEX - Nazwa indeksu, w którym należą zapytane dokumenty.
  2. _id - identyfikator zapytanego dokumentu.
  3. _seq_no - numer sekwencji dokumentu używanego do indeksowania.
  4. _Primary_term - pokazuje podstawowy termin dokumentu.
  5. znalezione - wskazuje, czy rekord istnieje, czy nie jako wartość logiczna.
  6. _ROUTING - reprezentuje routing wyjaśniający określony w żądaniu.
  7. _Source - przechowuje dane dokumentu jako JSON.
  8. _Field - pokazuje pola dokumentów.

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.