Dalam kueri wildcard, Anda dapat menggunakan karakter wildcard asterisk (*) dan tanda tanya (?) untuk mencari data. Asterisk (*) cocok dengan string apa pun yang memiliki panjang berapa pun—sebelum, sesudah, atau di sekitar istilah pencarian—sedangkan tanda tanya (?) cocok dengan satu karakter pada posisi tertentu. String dapat dimulai dengan asterisk (*) atau tanda tanya (?). Misalnya, string "table*e" akan mencocokkan "tablestore".
Jika pola kueri berupa *word* (setara dengan WHERE field_a LIKE '%word%' dalam SQL), Anda dapat menggunakan fitur kueri wildcard berbasis token untuk meningkatkan performa. Performa tidak menurun seiring peningkatan volume data.
Untuk menggunakan operator NOT LIKE, Anda harus menggabungkan WildcardQuery dengan must_not_queries dari BoolQuery.
Prasyarat
-
Instans OTSClient telah diinisialisasi. Untuk informasi selengkapnya, lihat Initialize an OTSClient instance.
-
Tabel data telah dibuat, dan data ditulis ke dalamnya. Untuk informasi selengkapnya, lihat Membuat tabel data dan Menulis data.
-
Indeks pencarian telah dibuat untuk tabel data tersebut. Untuk informasi selengkapnya, lihat Create a search Index.
Parameter
|
Parameter |
Deskripsi |
|
table_name |
Nama tabel data. |
|
index_name |
Nama indeks pencarian. |
|
offset |
Posisi awal kueri saat ini. |
|
limit |
Jumlah maksimum baris yang ingin dikembalikan oleh kueri saat ini. |
|
get_total_count |
Menentukan apakah jumlah total baris yang memenuhi kondisi kueri akan dikembalikan. Nilai default parameter ini adalah false, yang berarti jumlah total baris yang memenuhi kondisi kueri tidak dikembalikan. Jika Anda mengatur parameter get_total_count ke true, performa kueri akan menurun. |
|
query_type |
Jenis kueri. Atur jenis kueri ke |
|
field_name |
Nama kolom yang ingin Anda kueri. |
|
value |
String yang berisi karakter wildcard. Panjang string tidak boleh melebihi 32 karakter. |
|
sort |
Metode yang ingin Anda gunakan untuk mengurutkan baris dalam respons. Untuk informasi selengkapnya, lihat Sorting and paging. |
|
columns_to_get |
Menentukan apakah semua kolom dari setiap baris yang memenuhi kondisi kueri akan dikembalikan. Anda dapat mengonfigurasi return_type dan return_names untuk parameter ini.
|
Contoh
Kode contoh berikut menunjukkan cara mengkueri data yang cocok dengan pola key* pada kolom keyword suatu tabel.
$request = array(
'table_name' => 'php_sdk_test',
'index_name' => 'php_sdk_test_search_index',
'search_query' => array(
'offset' => 0,
'limit' => 2,
'get_total_count' => true,
'query' => array(
'query_type' => QueryTypeConst::WILDCARD_QUERY,
'query' => array(
'field_name' => 'keyword',
'value' => 'key*'
)
),
'sort' => array(
array(
'field_sort' => array(
'field_name' => 'keyword',
'order' => SortOrderConst::SORT_ORDER_ASC
)
),
)
),
'columns_to_get' => array(
'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
'return_names' => array('keyword')
)
);
$response = $otsClient->search($request);
FAQ
Referensi
-
Saat menggunakan indeks pencarian untuk mengkueri data, Anda dapat menggunakan metode kueri berikut: term query, terms query, match all query, match query, match phrase query, prefix query, range query, wildcard query, Boolean query, geo query, nested query, dan exists query. Metode-metode ini memungkinkan Anda mengkueri data dari berbagai dimensi sesuai kebutuhan bisnis.
Untuk mengurutkan atau menerapkan paginasi pada baris yang memenuhi kondisi kueri, gunakan fitur pengurutan dan paginasi. Untuk informasi selengkapnya, lihat Sorting and paging.
Untuk menciutkan set hasil berdasarkan kolom tertentu sehingga hanya satu entri per nilai unik yang muncul dalam hasil kueri, gunakan fitur collapse (distinct). Untuk informasi selengkapnya, lihat Collapse (distinct).
-
Untuk menganalisis data dalam tabel—seperti mendapatkan nilai ekstrem, jumlah total, atau jumlah baris—Anda dapat melakukan operasi agregasi atau mengeksekusi pernyataan SQL. Untuk informasi selengkapnya, lihat Aggregation dan SQL query.
-
Untuk mendapatkan semua baris yang memenuhi kondisi kueri secara cepat tanpa perlu mengurutkannya, panggil operasi ParallelScan dan ComputeSplits untuk memanfaatkan fitur pemindaian paralel. Untuk informasi selengkapnya, lihat Parallel scan.