All Products
Search
Document Center

Tablestore:Kueri JSON

Last Updated:Aug 12, 2026

Gunakan Tablestore SDK untuk Go guna melakukan kueri terhadap bidang JSON Object atau JSON Nested dalam indeks pencarian.

Prasyarat

Sebelum memulai, lengkapi persiapan berikut:

Deskripsi

Bidang JSON mendukung pengindeksan tipe Object dan Nested. Tipe Object tidak mempertahankan batas objek dalam array, sehingga objek yang berbeda dapat memenuhi kondisi kueri yang berbeda. Sebaliknya, indeks Nested mengindeks setiap objek dalam array sebagai baris turunan independen dan memastikan bahwa beberapa kondisi cocok dalam elemen array yang sama.

Jenis indeks JSON

Metode kueri

JsonType_OBJECT

Tidak mempertahankan batas objek dalam array. Gunakan jalur lengkap bidang turunan dalam kueri biasa, seperti profile.city.

JsonType_NESTED

Mempertahankan hubungan bidang dalam objek yang sama. Gunakan NestedQuery untuk melakukan kueri terhadap objek dalam array.

Catatan

SubFieldSchemas dari bidang JSON tidak boleh berisi bidang turunan Vector.

Kueri bidang Object

tableName := "example_table"
indexName := "example_index"

query := &search.TermQuery{FieldName: "profile.city", Term: "hangzhou"}
searchQuery := search.NewSearchQuery().
    SetQuery(query).
    SetLimit(10).
    SetGetTotalCount(true)

response, err := client.Search(&tablestore.SearchRequest{
    TableName:   tableName,
    IndexName:   indexName,
    SearchQuery: searchQuery,
    ColumnsToGet: &tablestore.ColumnsToGet{
        ReturnAllFromIndex: true,
    },
})
if err != nil {
    log.Fatal(err)
}

fmt.Println(response.TotalCount)
fmt.Println(response.Rows)

Kueri bidang Nested

tableName := "example_table"
indexName := "example_index"

query := &search.NestedQuery{Path: "orders", Query: &search.TermQuery{FieldName: "orders.product", Term: "book"}, ScoreMode: search.ScoreMode_None}
searchQuery := search.NewSearchQuery().
    SetQuery(query).
    SetLimit(10).
    SetGetTotalCount(true)

response, err := client.Search(&tablestore.SearchRequest{
    TableName:   tableName,
    IndexName:   indexName,
    SearchQuery: searchQuery,
    ColumnsToGet: &tablestore.ColumnsToGet{
        ReturnAllFromIndex: true,
    },
})
if err != nil {
    log.Fatal(err)
}

fmt.Println(response.TotalCount)
fmt.Println(response.Rows)

Parameter

Bidang Object menggunakan parameter dari jenis kueri yang dipilih. Bidang Nested menggunakan search.NestedQuery. Untuk konfigurasi kueri umum, lihat Term query. Untuk parameter NestedQuery, lihat Nested query.

Kueri bidang Object

Nama

Tipe

Deskripsi

FieldName (wajib)

string

Jalur lengkap bidang turunan JSON, seperti profile.city.

Nilai kueri (wajib)

interface{}

Nama dan tipe bergantung pada jenis kueri yang dipilih.

Kueri bidang Nested

Nama

Tipe

Deskripsi

Path (wajib)

string

Jalur bidang JsonType_NESTED.

Query (wajib)

search.Query

Kondisi kueri pada bidang turunan.

ScoreMode (opsional)

search.ScoreMode

Metode yang digunakan untuk menggabungkan skor dari baris turunan.