All Products
Search
Document Center

Tablestore:Kueri Multi-kondisi

Last Updated:Sep 10, 2026

Kueri boolean (BoolQuery) berisi satu atau lebih subkueri dan menggunakan subkueri tersebut untuk memeriksa apakah suatu baris memenuhi kondisi kueri. Setiap subkueri dapat berupa jenis kueri apa pun, termasuk kueri boolean lainnya.

Prasyarat

Parameter

Parameter

Deskripsi

tableName

Nama tabel data.

indexName

Nama indeks pencarian.

mustQueries

Daftar kueri. Suatu baris harus sesuai dengan semua subkueri. Ini setara dengan operator AND.

mustNotQueries

Daftar kueri. Suatu baris tidak boleh sesuai dengan salah satu subkueri. Ini setara dengan operator NOT.

filterQueries

Daftar kueri. Suatu baris harus sesuai dengan semua subkueri dalam filter. Filter mirip dengan kueri, tetapi tidak menghitung skor relevansi berdasarkan jumlah filter yang sesuai.

shouldQueries

Daftar kueri. Suatu baris dapat sesuai dengan subkueri ini. Ini setara dengan operator OR.

Suatu baris harus sesuai dengan minimal jumlah subkueri shouldQueries tertentu agar dianggap sesuai.

Semakin banyak subkueri shouldQueries yang sesuai dengan suatu baris, semakin tinggi skor relevansinya.

minimumShouldMatch

Jumlah minimum subkueri shouldQueries yang harus sesuai. Nilai default-nya adalah 1 jika hanya shouldQueries yang ada pada level yang sama. Nilai default-nya adalah 0 jika terdapat kueri lain, seperti mustQueries, mustNotQueries, dan filterQueries, pada level yang sama.

Contoh

Contoh berikut menunjukkan cara membuat BoolQuery untuk melakukan kueri boolean.

var client = require('../client');
var TableStore = require('../../index.js');
var Long = TableStore.Long;
/**
 * Gunakan kueri boolean untuk mengimplementasikan (col2 < 4 ATAU col3 < 5) ATAU (col2 = 4 DAN (col3 = 5 ATAU col3 = 6)). Logikanya sebagai berikut:
 * boolQuery1 = rangeQuery(col2 < 4) ATAU rangeQuery(col3 < 5)
 * boolQuery2 = termQuery(col3 = 5) ATAU termQuery(col3 = 6)
 * boolQuery3 = termQuery(col2 = 4) DAN boolQuery2
 * boolQuery4 = boolQuery1 ATAU boolQuery3
 */
client.search({
    tableName: "sampleTable",
    indexName: "sampleSearchIndex",
    searchQuery: {
        offset: 0, // Offset kueri.
        limit: 10, // Untuk hanya mendapatkan jumlah baris tanpa mengambil data, atur limit ke 0. Ini tidak akan mengembalikan baris apa pun.
        getTotalCount: false, // TotalCount dalam hasil menunjukkan jumlah total baris dalam tabel. Nilai default-nya adalah false, artinya tidak dikembalikan.
        query: { // Buat boolQuery4. Atur kondisi kueri agar sesuai dengan minimal salah satu dari boolQuery1 dan boolQuery3.
            queryType: TableStore.QueryType.BOOL_QUERY,
            query: {
                shouldQueries: [ // Anda dapat menggunakan mustQueries, shouldQueries, atau mustNotQueries.
                    { // Buat boolQuery1. Atur kondisi kueri agar sesuai dengan minimal salah satu dari "Kondisi Kueri 1" dan "Kondisi Kueri 2".
                        queryType: TableStore.QueryType.BOOL_QUERY,
                        query: {
                            // shouldQueries: Kondisi kueri adalah nilai col2 kurang dari 4 atau nilai col3 kurang dari 5.
                            shouldQueries:[
                                {
                                    // Kondisi Kueri 1: rangeQuery, nilai col2 kurang dari 4.
                                    queryType: TableStore.QueryType.RANGE_QUERY,
                                    query:{
                                        fieldName: "col2",
                                        rangeTo: 4
                                    }
                                },
                                {
                                    // Kondisi Kueri 2: rangeQuery, nilai col3 kurang dari 5.
                                    queryType: TableStore.QueryType.RANGE_QUERY,
                                    query:{
                                        fieldName: "col3",
                                        rangeTo: 5
                                    }
                                }
                            ],
                            minimumShouldMatch:1

                        }
                    },
                    { // Buat boolQuery3. Atur kondisi kueri agar sesuai dengan kedua "Kondisi Kueri 3" dan boolQuery2.
                        queryType: TableStore.QueryType.BOOL_QUERY,
                        query: {
                            mustQueries: [
                                // mustQueries: Kondisi kueri adalah nilai col2 sama dengan 4, dan nilai col3 sama dengan 5 atau 6.
                                {
                                    // Kondisi Kueri 3: termQuery, nilai col2 sama dengan 4.
                                    queryType:TableStore.QueryType.TERM_QUERY,
                                    query: {
                                        fieldName : "col2",
                                        term: 4
                                    }
                                },
                                { // Buat boolQuery2: Atur kondisi kueri agar sesuai dengan minimal salah satu dari "Kondisi Kueri 4" dan "Kondisi Kueri 5".
                                    queryType: TableStore.QueryType.BOOL_QUERY,
                                    query: {
                                        // shouldQueries: Kondisi kueri adalah nilai col3 sama dengan 5 atau 6.
                                        shouldQueries:[
                                            {
                                                // Kondisi Kueri 4: termQuery, nilai col3 sama dengan 5.
                                                queryType: TableStore.QueryType.TERM_QUERY,
                                                query:{
                                                    fieldName:"col3",
                                                    term: 5
                                                }
                                            },
                                            {
                                                // Kondisi Kueri 5: termQuery, nilai col3 sama dengan 6.         
                                                queryType: TableStore.QueryType.TERM_QUERY,
                                                query:{
                                                    fieldName:"col3",
                                                    term: 6
                                                }
                                            }
                                        ],
                                        minimumShouldMatch:1
                                    }
                                }
                            ]
                        }
                    }
                ],
                minimumShouldMatch: 1 // Ini hanya berlaku untuk shouldQueries. Menentukan jumlah minimum kondisi yang harus sesuai.
            }
        },
    },
    columnToGet: { // Menentukan kolom yang akan dikembalikan. Nilai yang valid: RETURN_SPECIFIED (mengembalikan kolom kustom), RETURN_ALL (mengembalikan semua kolom), RETURN_ALL_FROM_INDEX (mengembalikan semua kolom dari indeks pencarian), dan RETURN_NONE (tidak mengembalikan kolom apa pun).       
        returnType: TableStore.ColumnReturnType.RETURN_SPECIFIED,
        returnNames: ["col2", "col3", "col4"]
    }
}, function (err, data) {
    if (err) {
        console.log('error:', err);
        return;
    }
    console.log('success:', JSON.stringify(data, null, 2));
});

FAQ

Referensi