Manajemen indeks di OpenSearch mencakup penjelasan mengenai cara skema indeks menentukan tipe bidang untuk pencarian dan penyaringan, bagaimana indeks komposit menggabungkan beberapa bidang, cara alat analisis memproses data teks dan vektor, serta peran bidang atribut dalam mendukung operasi filter, sort, agregasi, dan distinct.
Skema indeks
Skema indeks menentukan cara OpenSearch menyimpan dan mengambil data Anda. Skema ini terdiri dari dua jenis bidang:
Index fields — dianalisis saat pengindeksan dan dicari saat kueri. Gunakan bidang ini untuk pencarian full-text dan kata kunci.
Attribute fields — digunakan dalam klausa filter, sort, agregasi, dan distinct.
Kompatibilitas tipe bidang
Tabel berikut menunjukkan tipe bidang mana yang mendukung pengindeksan, konfigurasi atribut, atau keduanya.
|
Field type |
Index field |
Attribute field |
Primary use |
|
INT |
Yes |
Yes |
Nilai integer; pencarian dan penyaringan rentang |
|
INT_ARRAY |
Yes |
Yes |
Array bilangan bulat |
|
FLOAT |
No |
Yes |
Nilai floating-point; hanya untuk sorting dan agregasi |
|
FLOAT_ARRAY |
No |
Yes |
Array bilangan pecahan |
|
DOUBLE |
No |
Yes |
Desimal presisi tinggi; hanya untuk sorting dan agregasi |
|
DOUBLE_ARRAY |
No |
Yes |
Array bilangan double |
|
TEXT |
Yes |
No |
Teks panjang; pencarian full-text dengan alat analisis |
|
SHORT_TEXT |
Yes |
No |
String pendek; pencarian kata kunci dan fuzzy |
|
LITERAL |
Yes |
Yes |
String exact-match; penyaringan dan pencarian |
|
LITERAL_ARRAY |
Yes |
Yes |
Array string exact-match |
|
TIMESTAMP |
Yes |
Yes |
Nilai waktu; pencarian rentang dan penyaringan berbasis waktu |
|
GEO_POINT |
Yes |
Yes |
Koordinat geografis; pencarian berbasis lokasi |
Indeks komposit
Indeks komposit mencakup beberapa bidang TEXT atau SHORT_TEXT. Berbeda dengan menjalankan kueri pada beberapa indeks satu-bidang menggunakan operator OR, indeks komposit memperlakukan konten gabungan dari semua bidangnya sebagai satu kesatuan yang dapat dicari, sehingga istilah kueri yang tersebar di beberapa bidang tetap dapat ditemukan.
Pertimbangkan sebuah aplikasi dengan indeks berikut:
title_index— indeks pada bidangtitlebody_index— indeks pada bidangbodyunion_index— indeks komposit pada bidangtitledanbody
Diberikan dokumen berikut:
id:123456,title:Open,body:Search
# Melakukan kueri pada dua indeks terpisah dengan OR tidak menemukan dokumen.
query=title_index:'OpenSearch' OR body_index:'OpenSearch'
# Melakukan kueri pada indeks komposit menemukan dokumen.
query=union_index:'OpenSearch'
Istilah OpenSearch tidak ditemukan di salah satu bidang secara terpisah, tetapi indeks komposit menemukannya dengan mencari kedua bidang secara bersamaan.
Semua bidang dalam indeks komposit harus memiliki tipe yang sama—semuanya TEXT atau semuanya SHORT_TEXT. Pencampuran tipe tidak didukung.
Jenis alat analisis
Alat analisis teks
Text analyzers: Alat analisis teks melakukan segmentasi teks untuk pengambilan informasi di berbagai domain, termasuk Tiongkok, Inggris, industri umum, TI, e-commerce, dan pendidikan. Alat ini juga mendukung:
Pencarian eksak berdasarkan nilai numerik atau nilai dengan panjang tetap
Pencarian fuzzy
Pencarian rentang berdasarkan lokasi, rentang waktu, atau rentang numerik
Alat analisis vektor
Alat analisis vektor mengambil dokumen berdasarkan vektor multidimensi. Dua konfigurasi tersedia:
Industri umum: mengambil dokumen berdasarkan vektor multidimensi
-
Pendidikan: mengambil dokumen umum berdasarkan vektor 256-dimensi
Pencocokan eksak tanpa tokenisasi
Untuk membuat bidang cocok secara eksak tanpa tokenisasi, ajukan perubahan offline untuk mengatur tipe bidang menjadi LITERAL dan atur alat analisisnya ke Keyword Analyzer. Dengan Keyword Analyzer, seluruh nilai bidang diperlakukan sebagai satu token, sehingga kueri terhadap bidang tersebut memerlukan pencocokan eksak, bukan pencocokan berbasis token.
Karena perubahan tipe bidang tidak tersedia di Konsol, konfigurasi ini harus dilakukan melalui proses perubahan offline. Bidang tersebut tidak langsung berlaku setelah disimpan.
Anda juga dapat menghindari tokenisasi dalam skenario lain:
Untuk menghindari tokenisasi hanya pada sebagian konten bidang, gunakan alat analisis kustom bersama entri intervensi dan nonaktifkan tokenisasi sekunder. Lihat Custom analyzers.
Untuk menghindari tokenisasi pada seluruh istilah kueri, bungkus istilah tersebut dengan tanda kutip ganda, misalnya,
query=default:"OpenSearch". Lihat Index recall - query clauses.
Bidang atribut
Bidang atribut mendukung klausa berikut:
|
Clause |
Purpose |
|
|
Menyaring hasil berdasarkan nilai bidang. Contoh: |
|
|
Menghitung statistik atas suatu bidang |
|
|
Mengurutkan hasil berdasarkan nilai bidang |
|
|
Menghilangkan duplikasi hasil berdasarkan suatu bidang |