Elasticsearch Vyberte konkrétní pole

Elasticsearch Vyberte Konkretni Pole



Elasticsearch standardně vrátí všechna pole v dokumentu po provedení vyhledávacího dotazu. To je definováno parametrem _source, který obsahuje všechna data uložená v záznamu během indexování.

curl -XGET 'http://localhost:9200/netflix/_doc/HXYz_IIBLbuC0z3qKeN2?pretty' -H 'kbn-xsrf: reporting'

Výstup:







Možná však nebudete chtít načíst všechna pole z daného dokumentu. V tomto tutoriálu se dozvíte, jak vybrat konkrétní pole z dokumentu.



Elasticsearch Fields Option

Parametr pole nám umožňuje získat konkrétní pole v požadavku na vyhledávání. Kromě toho nám parametr pole umožní načíst jedno nebo více polí. Data a typy prostorových dat můžete také formátovat pomocí parametru pole.



Předpokládejme například, že chceme načíst index, id, title, release_year, uvedené v, trvání a hodnocení z indexu Netflix, můžeme spustit dotaz, jak je ukázáno níže:





curl -XGET 'http://localhost/netflix/_search' -H 'kbn-xsrf: reporting' -H 'Content-Type: application/json' -d'
{
'dotaz': {
'zápas': {
'_id': 'HXYz_IIBLbuC0z3qKeN2'
}
},
'pole': [
'index',
'id',
'titul',
'rok_vydání',
'listed_in',
'doba trvání',
'hodnocení'
],
'_source': nepravda

}'

Ve výše uvedeném požadavku používáme vyhledávací API k prohledávání dokumentu se zadaným ID v parametru shody.

Poté použijeme parametr pole k načtení konkrétních polí z cílového dokumentu.



Všimněte si, že Elasticsearch bude ve výchozím nastavení obsahovat parametr _source, který se skládá ze všech polí dokumentu. Abychom zajistili, že načteme pouze zadaná pole, vypneme parametr _source:

Výše uvedený požadavek by měl vrátit odpověď, jak je uvedeno:

{
'vzal': 1,
'timed_out': nepravda,
'_shards': {
'celkem': 1,
'úspěšný': 1,
'přeskočeno': 0,
'neúspěšné': 0
},
'hity': {
'total': {
'hodnota': 1,
'relation': 'eq'
},
'max_score': 1,
'zásahy': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_skóre': 1,
'pole': {
'listed_in': [
'dokumenty'
],
'doba trvání': [
'90 minut'
],
'release_year': [
2020
],
'hodnocení': [
'PG-13'
],
'titul': [
„Dick Johnson je mrtvý“
]
}
}
]
}
}

Pomocí parametru _source můžete také definovat, která pole se mají vrátit z vyhledávacího dotazu. Příklad je uveden níže:

curl -XGET 'http://localhost:9200/netflix/_search' -H 'kbn-xsrf: reporting' -H 'Content-Type: application/json' -d'
{
'_source': ['title', 'release_year', 'rating', 'duration'],
'dotaz': {
'termín': {
'_id': {
'value': 'HXYz_IIBLbuC0z3qKeN2'
}
}
}

}'

V tomto případě specifikujeme pole, která chceme načíst, jako pole v parametru source. Výše uvedený požadavek by měl vrátit odpověď, jak je uvedeno:

{
'vzal': 0,
'timed_out': nepravda,
'_shards': {
'celkem': 1,
'úspěšný': 1,
'přeskočeno': 0,
'neúspěšné': 0
},
'hity': {
'total': {
'hodnota': 1,
'relation': 'eq'
},
'max_score': 1,
'zásahy': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_skóre': 1,
'_source': {
'duration': '90 min',
'release_year': 2020,
'rating': 'PG-13',
'title': 'Dick Johnson je mrtvý'
}
}
]
}

}

Závěr

V tomto článku jste se naučili, jak načíst konkrétní pole z požadavku vyhledávání pomocí polí a parametrů _source.

Chcete-li se dozvědět více o Elasticsearch a jeho možnostech, podívejte se na naše výukové programy na toto téma. Zaručeně najdete něco užitečného.

Děkuji za přečtení a chyťte se u dalšího!!