Elasticsearch Multi-Get

Elasticsearch Multi-Get

W tym artykule omówiono, jak korzystać z Multi-Get API ElasticSearch do pobierania wielu dokumentów JSON na podstawie ich identyfikatorów. Ponadto ElasticSearch umożliwia użycie pojedynczego zapytania do pobierania dokumentów z indeksów za pomocą tylko identyfikatorów dokumentów.

Odkryjmy.

Składnia żądania

Poniżej znajduje się składnia interfejsu ElasticSearch Multi-Get API:

Get /_Mget
Pobierz // _ mget

Multi-Get API obsługuje wiele wskaźników, które pozwalają pobierać dokumenty, nawet jeśli nie są one w tym samym indeksie.

Żądanie obsługuje następujące parametry ścieżki:

  1. - Nazwa indeksu, z którego do pobrania dokumentów określonych przez ich identyfikatory.

Możesz także określić inne parametry zapytania, jak pokazano:

  1. Pierwszeństwo - Definiuje preferowany węzeł lub odłamek.
  2. Czas rzeczywisty - Jeśli jest ustawiony na true, operacja jest wykonywana w czasie rzeczywistym.
  3. Odświeżać - Zmusza operację do odświeżenia odłamków docelowych przed pobraniem określonych dokumentów.
  4. Rozgromienie - Wartość używana do prowadzenia operacji do określonego odłamka.
  5. Store_fields - Pobiera pola dokumentów przechowywane w indeksie, a nie dokument.
  6. _źródło - Wartość logiczna, która określa, czy żądanie powinno zwrócić pole _source, czy nie.

Zapytanie wymaga ciała, które obejmuje następujące wartości:

  1. Dokumenty - Określa dokumenty, które chcesz pobrać. Ponadto w tej sekcji obsługuje następujące atrybuty:
    • _ID - Unikalny identyfikator dokumentu docelowego.
    • _indeks - Indeks zawierający dokument docelowy.
    • Rozgromienie - Klucz dla pierwotnego odłamka dokumentu.
    • _źródło - Jeśli prawda, zawiera wszystkie pola źródłowe; W przeciwnym razie wyklucza to.
    • _stored_fields - STODED_FIELDS, które chcesz dołączyć.
  2. IDS - Identyfikatory dokumentów, które chcesz pobrać.

Przykład 1: pobieraj wiele dokumentów z tego samego indeksu

Poniższy przykład pokazuje, jak używać Multi-Get API ElasticSearch do pobierania dokumentów z określonymi identyfikatorami z indeksu Netflix:

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

„Dokumenty”: [

„_id”: „t3wnvombck2aezxpytlj”
,

„_id”: „W3wnvombck2aezxpytlj”

]
'

Podane żądanie powinno pobrać dokumenty z określonymi identyfikatorami z indeksu Netflix. Powstałe wyjście jest jak pokazano:


„Dokumenty”: [

„_Index”: „Netflix”,
„_id”: „t3wnvombck2aezxpytlj”,
"_wersja 1,
„_seq_no”: 0,
„_primary_term”: 1,
„Znaleziono”: prawda,
"_źródło":
„Czas trwania”: „90 min”,
„Listed_in”: „Dokumenty”,
„Kraj”: „Stany Zjednoczone”,
„DATE_ADDED”: „25 września 2021”,
„show_id”: „s1”,
„Dyrektor”: „Kirsten Johnson”,
„Release_year”: 2020,
„Ocena”: „PG-13”,
„Opis”: „Gdy jej ojciec zbliża się do końca swojego życia, filmowiec Kirsten Johnson organizuje swoją śmierć w pomysłowy i komiczny sposób, aby pomóc im oboje stawić czoła nieuniknionym.",
„Typ”: „film”,
„Tytuł”: „Dick Johnson jest martwy”

,

„_Index”: „Netflix”,
„_id”: „W3wnvombck2aezxpytlj”,
"_wersja 1,
„_seq_no”: 12,
„_primary_term”: 1,
„Znaleziono”: prawda,
"_źródło":
„Kraj”: „Niemcy, Republika Czeska”,
„show_id”: „s13”,
„Dyrektor”: „Christian Schwochow”,
„Release_year”: 2021,
„Ocena”: „TV-MA”,
„Opis”: „Po zamordowaniu większości jej rodziny w bombardowaniu terrorystycznym młoda kobieta jest nieświadomie zwabiona do dołączenia do grupy, która ich zabiła.",
„Typ”: „film”,
„Tytuł”: „Je Suis Karl”,
„Czas trwania”: „127 min”,
„Listed_in”: „Dramaty, filmy międzynarodowe”,
„Obsada”: „Luna Wedler, Jannis Niewöhner, Milan Peschel, Edin Hasanović, Anna Fialová, Marlon Boess, Victor Boccard, Fleur Geffrier, Aziz Dyab, Mélanie Fouché, Elizaveta Maximová”,
„DATE_ADDED”: „23 września 2021”


]

Możemy również uprościć żądanie, umieszczając identyfikatory dokumentów w prostej tablicy, jak pokazano następująco:

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

„IDS”: [„t3wnvombck2aezxpytlj”, „W3wnvombck2aezxppytlj”]
'

Poprzednie żądanie powinno wykonać podobną akcję.

Przykład 2: Pobierz dokumenty z wielu wskazówek

W poniższym przykładzie żądanie pobiera wiele dokumentów z różnych wskaźników, jak pokazano:

curl -xget "http: // localhost: 9200/_mget" -h "kbn -xsrf: raportowanie" -h "content -type: application/json" -d '

„Dokumenty”: [

„_Index”: „Netflix”,
„_id”: „t3wnvombck2aezxpytlj”
,

„_Index”: „Disney”,
„_ID”: „8J4WWOMB1YF5VQFAKCE4”

]
'

Powstałe wyjście jest jak pokazano:

Przykład 3: Wyklucz określone pola

Możemy wykluczyć określone pola z danego żądania za pomocą parametrów źródła_include i źródła_exclude.

Przykładem jest jak pokazano:

curl -xget "http: // localhost: 9200/_mget" -h "kbn -xsrf: raportowanie" -h "content -type: application/json" -d '

„Dokumenty”: [

„_Index”: „Netflix”,
„_id”: „t3wnvombck2aezxpytlj”,
„_Source”: False
,

„_Index”: „Netflix”,
„_id”: „t3wnvombck2aezxpytlj”,
"_źródło":
„INCELLACJA”: [„Listed_in”, „Release_year”, „Tytuł”],
„wyklucz”: [„Opis”, „typ”, „date_added”]


]
'

Dane żądanie używa źródła i wyklucz, aby określić, które pola chcesz odzyskać w danym dokumencie.

Powstałe wyjście jest jak pokazano:

Wniosek

W tym poście omówiliśmy podstawy pracy z ElasticSearch Multi-Get API, który pozwala pobierać wiele dokumentów z różnych źródeł na podstawie ich identyfikatorów. Zapraszam do zbadania innych dokumentów, aby uzyskać więcej informacji.

Szczęśliwe kodowanie!