Gunakan Tablestore SDK for Java untuk membuat search index pada indeks Lastpoint dan mengkueri data terbaru dari setiap time series berdasarkan kondisi bidang data.
Prasyarat
Instal Tablestore SDK for Java dan inisialisasi klien. Indeks Lastpoint memerlukan versi 5.17.1 atau yang lebih baru. Disarankan untuk menggunakan versi terbaru.
Deskripsi
Pembacaan langsung dari indeks Lastpoint menemukan data berdasarkan rentang kunci primer. Untuk memfilter data terbaru berdasarkan bidang data menggunakan kueri Boolean, pencarian teks lengkap, kueri geografis, atau agregasi, buat search index pada indeks Lastpoint dan panggil search. Untuk informasi selengkapnya mengenai kemampuan kueri, lihat Search indexes.
public CreateSearchIndexResponse createSearchIndex(CreateSearchIndexRequest request) throws TableStoreException, ClientException
public SearchResponse search(SearchRequest request) throws TableStoreException, ClientException
Buat search index
Hanya bidang yang termasuk dalam skema search index yang dapat dikueri. Bidang _tags pada indeks Lastpoint merupakan array string dan harus dipetakan sebagai array Keyword. Petakan bidang data lainnya ke tipe yang sesuai.
Contoh berikut membuat example_search_index pada example_lastpoint_index serta mengindeks bidang tags, speed, dan status.
List<FieldSchema> fieldSchemas = Arrays.asList(
new FieldSchema("_tags", FieldType.KEYWORD)
.setIndex(true).setIsArray(true),
new FieldSchema("speed", FieldType.DOUBLE)
.setIndex(true).setEnableSortAndAgg(true),
new FieldSchema("status", FieldType.KEYWORD)
.setIndex(true).setEnableSortAndAgg(true));
IndexSchema indexSchema = new IndexSchema();
indexSchema.setFieldSchemas(fieldSchemas);
CreateSearchIndexRequest request = new CreateSearchIndexRequest();
request.setTableName("example_lastpoint_index");
request.setIndexName("example_search_index");
request.setIndexSchema(indexSchema);
client.createSearchIndex(request);
Kueri data terbaru
Pembuatan search index bersifat asinkron. Jalankan kueri setelah status indeks berubah menjadi RUNNING dan fase sinkronisasi data berubah menjadi INCR.
Contoh berikut menggunakan range query untuk mengambil baris Lastpoint di mana speed lebih besar dari 20.0. Kueri ini mengembalikan jumlah total baris yang sesuai dan semua kolom.
RangeQuery rangeQuery = new RangeQuery();
rangeQuery.setFieldName("speed");
rangeQuery.greaterThan(ColumnValue.fromDouble(20.0));
SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(rangeQuery);
searchQuery.setGetTotalCount(true);
SearchRequest request = new SearchRequest(
"example_lastpoint_index",
"example_search_index",
searchQuery);
SearchRequest.ColumnsToGet columnsToGet =
new SearchRequest.ColumnsToGet();
columnsToGet.setReturnAll(true);
request.setColumnsToGet(columnsToGet);
SearchResponse response = client.search(request);
System.out.println(response.getTotalCount());
response.getRows().forEach(System.out::println);
Parameter
Permintaan pembuatan search index
CreateSearchIndexRequest berisi parameter berikut.
|
Nama |
Tipe |
Deskripsi |
|
tableName (wajib) |
|
Nama indeks Lastpoint. Indeks Lastpoint digunakan sebagai tabel data saat Anda membuat search index. |
|
indexName (wajib) |
|
Nama search index. |
|
indexSchema (wajib) |
|
Skema search index, termasuk skema bidang, pengaturan indeks, dan pengaturan presorting. |
Bidang indeks
Setiap elemen dalam indexSchema.fieldSchemas[] bertipe FieldSchema. Parameter berikut mengonfigurasi bidang dalam contoh.
|
Nama |
Tipe |
Deskripsi |
|
fieldName (wajib) |
|
Nama bidang dalam indeks Lastpoint. |
|
fieldType (wajib) |
|
Tipe bidang search index. Tipe ini harus sesuai dengan tipe nilai dalam indeks Lastpoint. |
|
index (opsional) |
|
Menentukan apakah bidang tersebut diindeks. Nilai default: |
|
isArray (opsional) |
|
Menentukan apakah bidang tersebut berupa array. Nilai default: |
|
enableSortAndAgg (opsional) |
|
Menentukan apakah sorting dan agregasi diaktifkan. Nilai default: |
Permintaan pencarian
SearchRequest berisi parameter berikut.
|
Nama |
Tipe |
Deskripsi |
|
tableName (wajib) |
|
Nama indeks Lastpoint. |
|
indexName (wajib) |
|
Nama search index pada indeks Lastpoint. |
|
searchQuery (wajib) |
|
Konfigurasi kueri. Contoh ini mengatur |
|
columnsToGet (opsional) |
|
Kolom yang akan dikembalikan. Jika parameter ini tidak ditentukan, hanya kolom kunci primer yang dikembalikan. Contoh ini menggunakan |
Respons
SearchResponse berisi bidang spesifik operasi berikut.
|
Bidang |
Type |
Deskripsi |
|
|
|
Panggil |
|
|
|
Panggil |
|
|
|
Panggil |
|
|
|
Panggil |