All Products
Search
Document Center

Tablestore:Kueri data Lastpoint dengan menggunakan search index

Last Updated:Aug 04, 2026

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)

String

Nama indeks Lastpoint. Indeks Lastpoint digunakan sebagai tabel data saat Anda membuat search index.

indexName (wajib)

String

Nama search index.

indexSchema (wajib)

IndexSchema

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)

String

Nama bidang dalam indeks Lastpoint.

fieldType (wajib)

FieldType

Tipe bidang search index. Tipe ini harus sesuai dengan tipe nilai dalam indeks Lastpoint.

index (opsional)

boolean

Menentukan apakah bidang tersebut diindeks. Nilai default: true.

isArray (opsional)

boolean

Menentukan apakah bidang tersebut berupa array. Nilai default: false. Atur parameter ini ke true untuk _tags.

enableSortAndAgg (opsional)

boolean

Menentukan apakah sorting dan agregasi diaktifkan. Nilai default: true. Bidang teks tidak mendukung sorting atau agregasi.

Permintaan pencarian

SearchRequest berisi parameter berikut.

Nama

Tipe

Deskripsi

tableName (wajib)

String

Nama indeks Lastpoint.

indexName (wajib)

String

Nama search index pada indeks Lastpoint.

searchQuery (wajib)

SearchQuery

Konfigurasi kueri. Contoh ini mengatur query ke RangeQuery dan mengatur getTotalCount ke true untuk mengembalikan jumlah total baris yang sesuai. Untuk tipe kueri dan parameter yang didukung, lihat Data query.

columnsToGet (opsional)

SearchRequest.ColumnsToGet

Kolom yang akan dikembalikan. Jika parameter ini tidak ditentukan, hanya kolom kunci primer yang dikembalikan. Contoh ini menggunakan returnAll untuk mengembalikan semua kolom.

Respons

SearchResponse berisi bidang spesifik operasi berikut.

Bidang

Type

Deskripsi

rows

List<Row>

Panggil getRows() untuk mendapatkan baris Lastpoint yang dikembalikan oleh permintaan.

totalCount

long

Panggil getTotalCount() untuk mendapatkan jumlah total baris yang sesuai. Bidang ini dikembalikan hanya jika getTotalCount bernilai true.

nextToken

byte[]

Panggil getNextToken() untuk mendapatkan posisi awal kueri berikutnya. Nilai kosong menunjukkan bahwa tidak ada data tambahan yang tersedia.

isAllSuccess

boolean

Panggil isAllSuccess() untuk memeriksa apakah kueri berhasil.