Elasticsearch Pilih Bidang Tertentu

Elasticsearch Pilih Bidang Tertentu



Elasticsearch akan mengembalikan semua bidang dalam dokumen secara default setelah melakukan permintaan pencarian. Ini ditentukan oleh parameter _source, yang berisi semua data yang disimpan dalam catatan selama pengindeksan.

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

Keluaran:







Namun, Anda mungkin tidak ingin mengambil semua bidang dari dokumen tertentu. Dalam tutorial ini, Anda akan belajar bagaimana memilih bidang tertentu dari dokumen.



Opsi Bidang Elasticsearch

Parameter bidang memungkinkan kami untuk mengambil bidang tertentu dalam permintaan pencarian. Selain itu, parameter bidang akan memungkinkan kita untuk mengambil satu atau beberapa bidang. Anda juga dapat memformat tanggal dan tipe data spasial menggunakan parameter bidang.



Misalnya, kita ingin mengambil indeks, id, judul, rilis_tahun, terdaftar di, durasi, dan bidang peringkat dari indeks Netflix, kita dapat menjalankan kueri seperti yang ditunjukkan di bawah ini:





curl -XGET 'http://localhost/netflix/_search' -H 'kbn-xsrf: pelaporan' -H 'Tipe Konten: aplikasi/json' -d'
{
'permintaan': {
'cocok': {
'_id': 'HXYz_IIBLbuC0z3qKeN2'
}
},
'bidang': [
'indeks',
'Indo',
'judul',
'tahun rilis',
'terdaftar_dalam',
'durasi',
'peringkat'
],
'_source': salah

}'

Dalam permintaan di atas, kami menggunakan API pencarian untuk mencari dokumen dengan id yang ditentukan dalam parameter kecocokan.

Kami kemudian menggunakan parameter bidang untuk mengambil bidang tertentu dari dokumen target.



Perhatikan bahwa Elasticsearch akan secara default menyertakan parameter _source, yang terdiri dari semua bidang dokumen. Untuk memastikan kami hanya mengambil bidang yang ditentukan, kami menonaktifkan parameter _source:

Permintaan di atas harus mengembalikan respons seperti yang ditunjukkan:

{
'mengambil': 1,
'timed_out': salah,
'_pecahan': {
'jumlah': 1,
'berhasil': 1,
'dilewati': 0,
'gagal': 0
},
'pukulan': {
'jumlah': {
'nilai': 1,
'hubungan': 'persamaan'
},
'skor_maks': 1,
'pukulan': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_skor': 1,
'bidang': {
'terdaftar_dalam': [
'Dokumenter'
],
'durasi': [
'90 menit'
],
'tahun rilis': [
2020
],
'peringkat': [
'PG-13'
],
'judul': [
'Dick Johnson Sudah Mati'
]
}
}
]
}
}

Anda juga dapat menggunakan parameter _source untuk menentukan bidang mana yang akan dikembalikan dari kueri penelusuran. Contoh ditunjukkan di bawah ini:

curl -XGET 'http://localhost:9200/netflix/_search' -H 'kbn-xsrf: pelaporan' -H 'Tipe Konten: aplikasi/json' -d'
{
'_source': ['judul', 'rilis_tahun', 'peringkat', 'durasi'],
'permintaan': {
'ketentuan': {
'_Indo': {
'nilai': 'HXYz_IIBLbuC0z3qKeN2'
}
}
}

}'

Dalam hal ini, kami menentukan bidang yang ingin kami ambil sebagai larik di parameter sumber. Permintaan di atas harus mengembalikan respons seperti yang ditunjukkan:

{
'mengambil': 0,
'timed_out': salah,
'_pecahan': {
'jumlah': 1,
'berhasil': 1,
'dilewati': 0,
'gagal': 0
},
'pukulan': {
'jumlah': {
'nilai': 1,
'hubungan': 'persamaan'
},
'skor_maks': 1,
'pukulan': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_skor': 1,
'_sumber': {
'durasi': '90 menit',
'rilis_tahun': 2020,
'peringkat': 'PG-13',
'title': 'Dick Johnson Sudah Mati'
}
}
]
}

}

Kesimpulan

Dalam artikel ini, Anda mempelajari cara mengambil bidang tertentu dari permintaan penelusuran menggunakan bidang dan parameter _source.

Untuk mempelajari lebih lanjut tentang Elasticsearch dan kemampuannya, lihat tutorial kami tentang topik tersebut. Anda dijamin menemukan sesuatu yang berguna.

Terima kasih telah membaca & Sampai jumpa di yang berikutnya!!