ElasticSearch Wybierz określone pola

ElasticSearch Wybierz określone pola

ElasticSearch domyślnie zwróci wszystkie pola w dokumencie po przeprowadzeniu zapytania. Jest to zdefiniowane przez parametr _source, który zawiera wszystkie dane przechowywane w rekordzie podczas indeksowania.

curl -xget "http: // localhost: 9200/netflix/_doc/hxyz_iiblbuc0z3qken2?Pretty „-h” KBN -XSRF: Raportowanie ”

Wyjście:

Jednak możesz nie chcieć pobierać wszystkich pól z danego dokumentu. W tym samouczku dowiesz się, w jaki sposób wybierz określone pola z dokumentu.

Opcja ElasticSearch Fields

Parametr pola pozwala nam pobrać określone pola w żądaniu wyszukiwania. Ponadto parametr pola umożliwi nam pobieranie pojedynczych lub wielu pól. Możesz także sformatować daty i typy danych przestrzennych za pomocą parametru pól.

Załóżmy na przykład, że chcemy odzyskać indeks, identyfikator, tytuł, release_year, wymienione, czas trwania i ocenę z indeksu Netflix, możemy uruchomić zapytanie, jak pokazano poniżej:

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

"zapytanie":
"mecz":
„_id”: „HXYZ_IIBLBUC0Z3QKEN2”

,
„Pola”: [
"indeks",
"ID",
"tytuł",
"rok wydania",
„wymieniony_in”,
"czas trwania",
"ocena"
],
„_Source”: False
'

W powyższym żądaniu używamy interfejsu API wyszukiwania do wyszukiwania dokumentu z określonym identyfikatorem w parametrze dopasowania.

Następnie używamy parametru pól, aby pobrać określone pola z dokumentu docelowego.

Zauważ, że elasticsearch będzie domyślnie zawiera parametr _source, składający się ze wszystkich pól dokumentów. Aby upewnić się, że pobieramy tylko określone pola, wyłączamy parametr _source:

Powyższe żądanie powinno zwrócić odpowiedź, jak pokazano:


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

„_Index”: „Netflix”,
„_id”: „HXYZ_IIBLBUC0Z3QKEN2”,
„_Score”: 1,
„Fields”:
„wymieniony_in”: [
"Filmy dokumentalne"
],
"czas trwania": [
„90 min”
],
"rok wydania": [
2020
],
„Ocena”: [
„PG-13”
],
"tytuł": [
„Dick Johnson nie żyje”
]


]

Możesz także użyć parametru _source, aby zdefiniować, które pola należy zwrócić z zapytania wyszukiwania. Przykład jest pokazany poniżej:

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

„_Source”: [„tytuł”, „wydanie_year”, „ocena”, „czas trwania”],
"zapytanie":
"termin":
"_ID":
„Wartość”: „HXYZ_IIBLBUC0Z3QKEN2”



'

W takim przypadku określamy pola, które chcemy odzyskać jako tablicę w parametrze źródłowym. Powyższe żądanie powinno zwrócić odpowiedź, jak pokazano:


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

„_Index”: „Netflix”,
„_id”: „HXYZ_IIBLBUC0Z3QKEN2”,
„_Score”: 1,
"_źródło":
„Czas trwania”: „90 min”,
„Release_year”: 2020,
„Ocena”: „PG-13”,
„Tytuł”: „Dick Johnson jest martwy”


]

Wniosek

W tym artykule nauczyłeś się pobierać określone pola z żądania wyszukiwania za pomocą parametrów pól i _source.

Aby dowiedzieć się więcej o Elasticsearch i jego możliwościach, sprawdź nasze samouczki na ten temat. Masz gwarancję, że znajdziesz coś przydatnego.

Dziękujemy za przeczytanie i złap cię w następnym!!