全部产品
Search
文档中心

Tablestore:Kueri Boolean

更新时间:Jul 06, 2025

Kueri Boolean mengambil data dari tabel berdasarkan kombinasi subkueri. Tablestore mengembalikan baris yang memenuhi kondisi subkueri, yang dapat berupa tipe apa pun, termasuk kueri Boolean.

Prasyarat

Parameter

Parameter

Deskripsi

tableName

Nama tabel data.

indexName

Nama indeks pencarian.

mustQueries

Daftar subkueri yang harus sesuai dengan hasil kueri. Parameter ini setara dengan operator AND.

mustNotQueries

Daftar subkueri yang tidak boleh sesuai dengan hasil kueri. Parameter ini setara dengan operator NOT.

filterQueries

Daftar subkueri. Hanya baris yang sesuai dengan semua subfilter yang dikembalikan. Filter mirip dengan kueri kecuali bahwa filter tidak menghitung skor relevansi berdasarkan jumlah subfilter yang sesuai dengan baris tersebut.

shouldQueries

Daftar subkueri yang bisa atau tidak perlu sesuai dengan hasil kueri. Parameter ini setara dengan operator OR.

Hanya baris yang memenuhi jumlah minimum kondisi subkueri yang ditentukan oleh shouldQueries yang dikembalikan.

Skor relevansi keseluruhan yang lebih tinggi menunjukkan bahwa lebih banyak kondisi subkueri yang ditentukan oleh shouldQueries terpenuhi.

minimumShouldMatch

Jumlah minimum kondisi subkueri yang ditentukan oleh shouldQueries yang harus dipenuhi oleh baris. Jika tidak ada kondisi subkueri lain selain kondisi subkueri yang ditentukan oleh shouldQueries, nilai default parameter minimumShouldMatch adalah 1. Jika kondisi subkueri lainnya, seperti kondisi subkueri yang ditentukan oleh mustQueries, mustNotQueries, dan filterQueries, ditentukan, nilai default parameter minimumShouldMatch adalah 0.

Contoh

Berikut adalah contoh kode untuk membuat kueri Boolean guna mengkueri baris berdasarkan kombinasi subkueri:

var client = require('../client');
var TableStore = require('../../index.js');
var Long = TableStore.Long;
/**
 * Lakukan kueri Boolean untuk melaksanakan operasi berikut: (col2 < 4 or col 3 < 5) or (col2 = 4 and (col3 = 5 or col3 = 6)). Logika berikut digunakan:
 * boolQuery1 = rangeQuery(col2<4) or rangeQuery(col3<5)
 * boolQuery2 = termQuery(col3=5) or (col3=6)
 * boolQuery3 = termQuery(col2=4) and boolquery2
 * boolQuery4 = boolQuery1 or boolQuery3
 */
client.search({
    tableName: "sampleTable",
    indexName: "sampleSearchIndex",
    searchQuery: {
        offset: 0, // Kueri nilai offset. 
        limit: 10, // Untuk hanya mengkueri jumlah baris yang memenuhi kondisi kueri tanpa mengembalikan data spesifik, Anda dapat mengatur limit menjadi 0. Dengan cara ini, Tablestore mengembalikan jumlah baris yang memenuhi kondisi kueri tanpa data spesifik dari tabel. 
        getTotalCount: false, // Tentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai default parameter ini adalah false, yang menunjukkan bahwa jumlah total baris yang memenuhi kondisi kueri tidak dikembalikan. 
        query: { // Buat boolQuery4. Tentukan kondisi kueri untuk memenuhi setidaknya salah satu dari boolQuery1 dan boolQuery3. 
            queryType: TableStore.QueryType.BOOL_QUERY,
            query: {
                shouldQueries: [ // Tentukan mustQueries, shouldQueries, atau mustNotQueries. 
                    { // Buat boolQuery1. Tentukan kondisi kueri untuk memenuhi setidaknya salah satu dari Kondisi Kueri 1 dan Kondisi Kueri 2. 
                        queryType: TableStore.QueryType.BOOL_QUERY,
                        query: {
                            // Tentukan shouldQueries untuk mengkueri baris yang berisi kolom col2 dengan nilai lebih kecil dari 4 atau berisi kolom col3 dengan nilai lebih kecil dari 5. 
                            shouldQueries:[
                                {
                                    // Kondisi Kueri 1: Lakukan kueri rentang untuk mengkueri baris yang berisi kolom col2 dengan nilai lebih kecil dari 4. 
                                    queryType: TableStore.QueryType.RANGE_QUERY,
                                    query:{
                                        fieldName: "col2",
                                        rangeTo: 4
                                    }
                                },
                                {
                                    // Kondisi Kueri 2: Lakukan kueri rentang untuk mengkueri baris yang berisi kolom col3 dengan nilai lebih kecil dari 5.            
                                    queryType: TableStore.QueryType.RANGE_QUERY,
                                    query:{
                                        fieldName: "col3",
                                        rangeTo: 5
                                    }
                                }
                            ],
                            minimumShouldMatch:1

                        }
                    },
                    { // Buat boolQuery3. Tentukan kondisi kueri untuk memenuhi kondisi Kondisi Kueri 3 dan boolQuery2. 
                        queryType: TableStore.QueryType.BOOL_QUERY,
                        query: {
                            mustQueries: [
                                // Tentukan mustQueries untuk mengkueri baris yang berisi kolom col2 dengan nilai sama dengan 4 dan berisi kolom col3 dengan nilai sama dengan 5 atau 6. 
                                {
                                    // Kondisi Kueri 3: Lakukan kueri tepat untuk mengkueri baris yang berisi kolom col2 dengan nilai sama dengan 4. 
                                    queryType:TableStore.QueryType.TERM_QUERY,
                                    query: {
                                        fieldName : "col2",
                                        term: 4
                                    }
                                },
                                { // Buat boolQuery2: Tentukan kondisi kueri untuk memenuhi setidaknya salah satu dari Kondisi Kueri 4 dan Kondisi Kueri 5. 
                                    queryType: TableStore.QueryType.BOOL_QUERY,
                                    query: {
                                        // Tentukan shouldQueries untuk mengkueri baris yang berisi kolom col3 dengan nilai sama dengan 5 atau 6. 
                                        shouldQueries:[
                                            {
                                                // Kondisi Kueri 4: Lakukan kueri tepat untuk mengkueri baris yang berisi kolom col3 dengan nilai sama dengan 5. 
                                                queryType: TableStore.QueryType.TERM_QUERY,
                                                query:{
                                                    fieldName:"col3",
                                                    term: 5
                                                }
                                            },
                                            {
                                                // Kondisi Kueri 5: Lakukan kueri tepat untuk mengkueri baris yang berisi kolom col3 dengan nilai sama dengan 6.          
                                                queryType: TableStore.QueryType.TERM_QUERY,
                                                query:{
                                                    fieldName:"col3",
                                                    term: 6
                                                }
                                            }
                                        ],
                                        minimumShouldMatch:1
                                    }
                                }
                            ]
                        }
                    }
                ],
                minimumShouldMatch: 1 // Tentukan jumlah minimum kondisi yang harus dipenuhi. Parameter ini valid ketika kondisi subkueri hanya ditentukan oleh shouldQueries. 
            }
        },
    },
    columnToGet: { // Tentukan kolom yang ingin Anda kembalikan. Anda dapat mengonfigurasi parameter RETURN_SPECIFIED untuk mengembalikan kolom tertentu, parameter RETURN_ALL untuk mengembalikan semua kolom, parameter RETURN_ALL_FROM_INDEX untuk mengembalikan semua kolom dalam indeks pencarian, atau parameter RETURN_NONE untuk hanya mengembalikan kolom kunci utama.        
        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

  • Jenis kueri berikut didukung oleh indeks pencarian: kueri tepat, kueri terms, kueri match all, kueri match, kueri match phrase, kueri prefix, kueri rentang, kueri wildcard, kueri Boolean, kueri geo, kueri nested, kueri vektor, dan kueri exists. Anda dapat memilih jenis kueri sesuai dengan kebutuhan bisnis Anda.

    Untuk mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri, Anda dapat menggunakan fitur Pengurutan dan paging. Untuk informasi lebih lanjut, lihat Pengurutan dan paging.

    Untuk meruntuhkan set hasil berdasarkan kolom tertentu, Anda dapat menggunakan fitur collapse (distinct). Dengan cara ini, data dari tipe yang ditentukan muncul hanya sekali dalam hasil kueri. Untuk informasi lebih lanjut, lihat Collapse (distinct).

  • Untuk menganalisis data dalam tabel, seperti mendapatkan nilai ekstrem, jumlah, dan total jumlah baris, Anda dapat melakukan operasi agregasi atau menjalankan pernyataan SQL. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.

  • Untuk mendapatkan semua baris yang memenuhi kondisi kueri tanpa perlu mengurutkan baris, Anda dapat memanggil operasi ParallelScan dan ComputeSplits untuk menggunakan fitur pemindaian paralel. Untuk informasi lebih lanjut, lihat Pemindaian paralel.