All Products
Search
Document Center

Tablestore:Boolean query

Last Updated:Aug 12, 2026

Gunakan Boolean query di Tablestore SDK for Go untuk menggabungkan beberapa kondisi dengan logika AND, OR, NOT, dan filter.

Prasyarat

Instal Tablestore Go SDK dan inisialisasi klien.

Deskripsi

Boolean query menggabungkan subkueri menggunakan klausa Must, Should, MustNot, dan Filter. Klausa Must dan Filter harus cocok, klausa Should harus memenuhi parameter MinShouldMatch, sedangkan klausa MustNot tidak boleh cocok.

func (client *tablestore.TableStoreClient) Search(request *tablestore.SearchRequest) (*tablestore.SearchResponse, error)

Contoh berikut melakukan kueri data dan mengembalikan hingga 10 baris serta jumlah total baris yang sesuai.

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

query := &search.BoolQuery{MustQueries: []search.Query{&search.TermQuery{FieldName: "category", Term: "books"}}, MustNotQueries: []search.Query{&search.TermQuery{FieldName: "status", Term: "inactive"}}}
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

Permintaan kueri

request bertipe tablestore.SearchRequest dan berisi parameter berikut.

Name

Type

Description

TableName (required)

string

Nama tabel data.

IndexName (required)

string

Nama search index.

SearchQuery (required)

search.SearchQuery

Kondisi kueri dan konfigurasi kueri umum.

ColumnsToGet (optional)

*tablestore.ColumnsToGet

Konfigurasi kolom yang dikembalikan. Jika parameter ini dihilangkan, hanya kolom kunci primer yang dikembalikan.

RoutingValues (optional)

[]*tablestore.PrimaryKey

Nilai kunci primer untuk bidang routing kustom. Abaikan parameter ini jika routing kustom tidak dikonfigurasi.

TimeoutMs (optional)

*int32

Periode timeout permintaan dalam milidetik.

Konfigurasi kueri

Buat konfigurasi kueri dengan memanggil search.NewSearchQuery() dan konfigurasikan menggunakan metode berikut.

Name

Type

Description

SetQuery (required)

search.Query

Menentukan kondisi kueri.

SetOffset (optional)

int32

Menentukan posisi awal. Nilai default: 0. Untuk paginasi berbasis offset, Offset + Limit tidak boleh melebihi 100.000.

SetLimit (optional)

int32

Menentukan jumlah maksimum baris yang dikembalikan. Nilai default: 10. Nilai maksimum: 100. Nilai 0 tidak mengembalikan baris apa pun.

SetHighlight (optional)

*search.Highlight

Mengonfigurasi ringkasan dan penyorotan untuk bidang Text. Untuk informasi selengkapnya, lihat Summary and highlighting.

SetCollapse (optional)

*search.Collapse

Melipat hasil kueri. Untuk informasi selengkapnya, lihat Collapse query results.

SetSort (optional)

*search.Sort

Menentukan urutan pengurutan hasil. Untuk informasi selengkapnya, lihat Sort and paginate results.

SetGetTotalCount (optional)

bool

Menentukan apakah akan menghitung semua baris yang sesuai. Nilai default: false.

SetToken (optional)

[]byte

Menentukan nilai NextToken yang dikembalikan oleh respons sebelumnya. Metode ini menghapus Sort karena token berisi kondisi pengurutan halaman sebelumnya. Jangan tentukan Offset saat menggunakan paginasi berbasis token.

SetSearchFilter (optional)

*search.SearchFilter

Menerapkan filter pasca-kueri. Untuk informasi selengkapnya, lihat Use post-query filters.

Aggregation (optional)

...search.Aggregation

Mengonfigurasi agregasi. Untuk informasi selengkapnya, lihat Aggregation.

GroupBy (optional)

...search.GroupBy

Mengonfigurasi pengelompokan. Untuk informasi selengkapnya, lihat Aggregation.

Kondisi kueri

Kueri bertipe search.BoolQuery dan berisi parameter berikut.

Name

Type

Description

MustQueries (optional)

[]search.Query

Subkueri yang harus sesuai. Subkueri digabungkan dengan AND.

ShouldQueries (optional)

[]search.Query

Subkueri yang sebaiknya sesuai. Subkueri digabungkan dengan OR.

MustNotQueries (optional)

[]search.Query

Subkueri yang tidak boleh sesuai.

FilterQueries (optional)

[]search.Query

Subkueri yang harus sesuai tetapi tidak berkontribusi terhadap skor relevansi.

MinShouldMatch (optional)

*string

Jumlah minimum atau persentase ShouldQueries yang harus sesuai, seperti 2 atau 75%. Jika hanya ShouldQueries yang dikonfigurasi, setidaknya satu subkueri harus sesuai secara default. Jika MustQueries, MustNotQueries, atau FilterQueries juga dikonfigurasi, nilai default-nya adalah 0 dan ShouldQueries hanya berkontribusi terhadap skor relevansi.

Weight (optional)

*float32

Bobot relevansi. Nilai ini hanya memengaruhi pengurutan ketika hasil diurutkan berdasarkan skor.

Kolom yang dikembalikan

request.ColumnsToGet bertipe tablestore.ColumnsToGet dan berisi parameter berikut.

Name

Type

Description

Columns (optional)

[]string

Kolom atribut yang dikembalikan. Parameter ini hanya berlaku jika ReturnAll dan ReturnAllFromIndex keduanya bernilai false.

ReturnAll (optional)

bool

Menentukan apakah akan mengembalikan semua kolom atribut dalam tabel data. Nilai default: false.

ReturnAllFromIndex (optional)

bool

Menentukan apakah akan mengembalikan semua kolom atribut yang diindeks. Nilai default: false. Jangan atur parameter ini dan ReturnAll ke true secara bersamaan.

Respons

Metode Search mengembalikan nilai tablestore.SearchResponse. Tabel berikut menjelaskan bidang bisnis inti.

Name

Type

Description

TotalCount

int64

Jumlah total baris yang sesuai. Nilainya bergantung pada SetGetTotalCount.

Rows

[]*tablestore.Row

Baris yang dikembalikan oleh kueri saat ini. Jumlahnya tidak melebihi nilai yang ditentukan oleh SetLimit.

SearchHits

[]*tablestore.SearchHit

Hasil pencarian. Baca bidang ini saat Anda menggunakan penyorotan, nested inner hits, atau skor relevansi.

NextToken

[]byte

Token untuk halaman berikutnya. Jika nilainya tidak kosong, teruskan ke kueri berikutnya.

IsAllSuccess

bool

Menunjukkan apakah semua partisi indeks telah dikueri. Jika nilainya false, hasil parsial dikembalikan dan TotalCount mungkin kurang dari jumlah aktual baris yang sesuai.

AggregationResults

search.AggregationResults

Hasil agregasi.

GroupByResults

search.GroupByResults

Hasil pengelompokan.