Elasticsearch Pumili ng Mga Tukoy na Field

Elasticsearch Pumili Ng Mga Tukoy Na Field



Ang Elasticsearch ay default na ibabalik ang lahat ng mga patlang sa isang dokumento sa pagsasagawa ng isang query sa paghahanap. Tinutukoy ito ng parameter na _source, na naglalaman ng lahat ng data na nakaimbak sa tala sa panahon ng pag-index.

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

Output:







Gayunpaman, maaaring hindi mo nais na kunin ang lahat ng mga patlang mula sa isang ibinigay na dokumento. Sa tutorial na ito, matututunan mo kung paano pumili ng mga partikular na field mula sa isang dokumento.



Pagpipilian sa Elasticsearch Fields

Ang parameter ng field ay nagbibigay-daan sa amin na kunin ang mga partikular na field sa isang kahilingan sa paghahanap. Bilang karagdagan, ang parameter ng field ay magbibigay-daan sa amin na kumuha ng isa o maramihang mga field. Maaari mo ring i-format ang mga petsa at spatial na uri ng data gamit ang parameter ng field.



Halimbawa, ipagpalagay na gusto naming kunin ang index, id, pamagat, release_year, nakalista sa, tagal, at mga field ng rating mula sa Netflix index, maaari kaming magpatakbo ng query tulad ng ipinapakita sa ibaba:





curl -XGET 'http://localhost/netflix/_search' -H 'kbn-xsrf: pag-uulat' -H 'Content-Type: application/json' -d'
{
'tanong': {
'tugma': {
'_id': 'HXYz_IIBLbuC0z3qKeN2'
}
},
'mga patlang': [
'index',
'id',
'pamagat',
'release_year',
'nakalista_sa',
'tagal',
'marka'
],
'_source': mali

}'

Sa kahilingan sa itaas, ginagamit namin ang search API upang hanapin ang dokumento na may tinukoy na id sa parameter ng tugma.

Pagkatapos ay gagamitin namin ang parameter ng mga field para kunin ang mga partikular na field mula sa target na dokumento.



Tandaan na ang Elasticsearch ay magiging default na kasama ang _source parameter, na binubuo ng lahat ng mga field ng dokumento. Upang matiyak na kukunin lang namin ang mga tinukoy na field, pinapatay namin ang _source parameter:

Ang kahilingan sa itaas ay dapat magbalik ng tugon tulad ng ipinapakita:

{
'kinuha': 1,
'timed_out': mali,
'_shards': {
'kabuuan': 1,
'matagumpay': 1,
'nilaktawan': 0,
'nabigo': 0
},
'mga hit': {
'kabuuan': {
'halaga': 1,
'relasyon': 'eq'
},
'max_score': 1,
'mga hit': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_score': 1,
'mga patlang': {
'listed_in': [
'Mga dokumentaryo'
],
'tagal': [
'90 min'
],
'release_year': [
2020
],
'marka': [
'PG-13'
],
'pamagat': [
'Patay na si Dick Johnson'
]
}
}
]
}
}

Maaari mo ring gamitin ang parameter na _source upang tukuyin kung aling mga field ang ibabalik mula sa isang query sa paghahanap. Ang isang halimbawa ay ipinapakita sa ibaba:

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

}'

Sa kasong ito, tinukoy namin ang mga patlang na gusto naming makuha bilang isang array sa source parameter. Dapat ibalik ng kahilingan sa itaas ang tugon tulad ng ipinapakita:

{
'kinuha': 0,
'timed_out': mali,
'_shards': {
'kabuuan': 1,
'matagumpay': 1,
'nilaktawan': 0,
'nabigo': 0
},
'mga hit': {
'kabuuan': {
'halaga': 1,
'relasyon': 'eq'
},
'max_score': 1,
'mga hit': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_score': 1,
'_source': {
'tagal': '90 min',
'release_year': 2020,
'rating': 'PG-13',
'title': 'Patay na si Dick Johnson'
}
}
]
}

}

Konklusyon

Sa artikulong ito, natutunan mo kung paano kumuha ng mga partikular na field mula sa isang kahilingan sa paghahanap gamit ang mga field at _source na parameter.

Upang matuto nang higit pa tungkol sa Elasticsearch at sa mga kakayahan nito, tingnan ang aming mga tutorial sa paksa. Ikaw ay garantisadong makakahanap ng isang bagay na kapaki-pakinabang.

Salamat sa pagbabasa at Abangan ka sa susunod!!