Nilai maksimum parameter limit dalam operasi Search bergantung pada sumber data yang dibaca. Jika semua kolom yang ingin Anda kembalikan disimpan di dalam search index, limit dapat mencapai 1.000. Namun, jika ada kolom yang harus diambil dari tabel data, nilai limit dibatasi hingga 100.
Solusi
Apakah limit dapat mencapai 1.000 bergantung pada satu kondisi: apakah semua kolom yang ingin Anda kembalikan tersimpan di dalam search index?
|
Sumber data |
Limit maksimum |
|
Hanya dari search index |
1000 |
|
Tabel data (ada kolom yang tidak ada di indeks) |
100 |
Untuk mengatur limit menjadi 1.000, konfigurasikan parameter ColumnsToGet agar semua kolom yang dikembalikan berasal dari search index. Tersedia dua metode:
Metode 1: Atur
ColumnsToGet.columnske kolom atribut tertentu yang ada di dalam search index.Metode 2: Atur
ColumnsToGet.ReturnAllColumnsFromIndexketrueuntuk mengembalikan semua kolom atribut yang tersimpan di dalam search index. Memerlukan Tablestore SDK for Java V5.6.1 atau versi yang lebih baru.
Jika tidak ada search index yang sudah ada yang berisi semua kolom yang diperlukan, tambahkan kolom yang kurang ke indeks yang sudah ada atau sertakan kolom tersebut saat membuat indeks baru. Lihat Create a search index dan Dynamically modify the schema of a search index.
Contoh
Contoh berikut menggunakan Tablestore SDK for Java. Kedua metode mengatur limit menjadi 1.000 dengan memastikan semua kolom yang dikembalikan berasal dari search index. Pendekatan ini sama untuk SDK bahasa pemrograman lainnya.
SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(new MatchAllQuery());
searchQuery.setLimit(1000);
SearchRequest searchRequest = new SearchRequest(tableName, indexName, searchQuery);
// Metode 1: Mengembalikan kolom atribut tertentu yang ada di dalam search index.
ColumnsToGet columnsToGet1 = new ColumnsToGet();
columnsToGet1.setReturnAll(false);
// Tentukan nama kolom yang disimpan di dalam search index.
columnsToGet1.setColumns(Arrays.asList("field_1", "field_2", "field_3"));
searchRequest.setColumnsToGet(columnsToGet1);
// Metode 2: Mengembalikan semua kolom atribut yang disimpan di dalam search index.
// Memerlukan Tablestore SDK for Java V5.6.1 atau versi yang lebih baru.
ColumnsToGet columnsToGet2 = new ColumnsToGet();
columnsToGet2.setReturnAllFromIndex(true);
searchRequest.setColumnsToGet(columnsToGet2);
SearchResponse response = client.search(searchRequest);