All Products
Search
Document Center

Tablestore:Lakukan kueri Boolean

Last Updated:Jul 02, 2025

Kueri Boolean terdiri dari satu atau lebih subkueri. Tablestore mengembalikan baris yang memenuhi kondisi subkueri yang ditentukan. Subkueri dapat berupa tipe apa pun, termasuk kueri Boolean.

Prasyarat

Parameter

Parameter

Deskripsi

MustQueries

Daftar kondisi subkueri. Hanya baris yang memenuhi semua kondisi subkueri yang dikembalikan. Parameter ini setara dengan operator AND.

MustNotQueries

Daftar kondisi subkueri. Hanya baris yang tidak memenuhi salah satu kondisi subkueri yang dikembalikan. Parameter ini setara dengan operator NOT.

FilterQueries

Daftar kondisi subkueri. Hanya baris yang memenuhi semua filter yang dikembalikan. Filter serupa dengan kueri kecuali bahwa skor relevansi tidak dihitung dalam filter berdasarkan jumlah subfilter yang dipenuhi oleh suatu baris.

ShouldQueries

Daftar kondisi subkueri. Tidak semua kondisi subkueri perlu dipenuhi agar hasil kueri dikembalikan. Parameter ini setara dengan operator OR.

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

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

MinimumShouldMatch

Jumlah minimum kondisi subkueri yang ditentukan oleh parameter ShouldQueries yang harus dipenuhi oleh baris yang dikembalikan. Jika tidak ada kondisi subkueri lain selain kondisi subkueri yang ditentukan oleh parameter ShouldQueries yang ditentukan, nilai default dari parameter MinimumShouldMatch adalah 1. Jika kondisi subkueri lain, seperti kondisi subkueri yang ditentukan oleh parameter MustQueries, MustNotQueries, atau FilterQueries, ditentukan, nilai default dari parameter MinimumShouldMatch adalah 0.

TableName

Nama tabel data.

IndexName

Nama indeks pencarian.

ColumnsToGet

Menentukan apakah akan mengembalikan semua kolom dalam baris yang memenuhi kondisi kueri. Anda dapat menentukan parameter ReturnAll, Columns, dan ReturnAllFromIndex.

Nilai default ReturnAll adalah false, yang menentukan bahwa tidak semua kolom dikembalikan. Anda dapat menggunakan salah satu metode berikut untuk menentukan kolom yang ingin Anda kembalikan. Jika Anda tidak menggunakan metode berikut untuk menentukan kolom yang ingin Anda kembalikan, hanya kolom kunci utama yang dikembalikan.

  • Konfigurasikan Columns untuk menentukan kolom yang ingin Anda kembalikan.

  • Setel ReturnAllFromIndex ke true untuk mengembalikan semua kolom dari indeks pencarian.

Jika Anda menyetel ReturnAll ke true, semua kolom dikembalikan.

Contoh

Kode sampel berikut menunjukkan cara melakukan kueri Boolean yang terdiri dari subkueri Boolean. Dalam contoh ini, baris dengan nilai kolom Keyword_type_col "SearchIndex" atau "TableStore" diquery. Semua kolom dalam indeks pencarian dikembalikan.

/// <summary>
/// Kueri Boolean berisi satu atau lebih subkueri. Setiap subkueri memiliki tipe sendiri.
/// MustQueries: Baris harus memenuhi semua kondisi subkueri.
/// ShouldQueries: Lebih dari satu kondisi ditentukan oleh parameter ShouldQueries. Jika baris memenuhi setidaknya satu kondisi, baris tersebut memenuhi kondisi kueri.
/// MustNotQueries: Baris tidak boleh memenuhi kondisi.
/// MinimumShouldMatch: Baris harus memenuhi jumlah minimum kondisi.
/// </summary>
/// <param name="otsClient"></param>
public static void BoolQuery(OTSClient otsClient)
{
    Console.WriteLine("\n Mulai kueri bool...");

    var searchQuery = new SearchQuery();
    // Kembalikan jumlah total baris yang memenuhi kondisi kueri.
    searchQuery.GetTotalCount = true;
    var boolQuery = new BoolQuery();
    var shouldQuerys = new List<IQuery>();
    shouldQuerys.Add(new TermQuery(Keyword_type_col, new ColumnValue("SearchIndex")));
    shouldQuerys.Add(new TermQuery(Keyword_type_col, new ColumnValue("TableStore")));
    boolQuery.ShouldQueries = shouldQuerys;
    boolQuery.MinimumShouldMatch = 1;

    searchQuery.Query = boolQuery;

    var request = new SearchRequest(TableName, IndexName, searchQuery);
    // Anda dapat menentukan parameter ColumnsToGet untuk mengembalikan kolom yang Anda tentukan, semua kolom dalam baris yang memenuhi kondisi kueri, atau semua kolom dalam indeks pencarian. Jika Anda tidak menentukan parameter ini, hanya kolom kunci utama yang dikembalikan.
    request.ColumnsToGet = new ColumnsToGet()
    {
        // Kembalikan semua kolom dalam indeks pencarian.
        ReturnAllFromIndex = true
        // Kembalikan kolom yang Anda tentukan.
        //Columns = new List<string>() { Long_type_col, Text_type_col, Keyword_type_col }
        // Kembalikan semua kolom dalam baris yang memenuhi kondisi kueri.
        //ReturnAll = true
    };

    var response = otsClient.Search(request);

    Console.WriteLine("Total Count:" + response.TotalCount); // Tampilkan jumlah total baris yang memenuhi kondisi kueri bukan jumlah baris yang dikembalikan.
    foreach (var row in response.Rows)
    {
        PrintRow(row);
    }
}

FAQ

Referensi

  • Saat menggunakan indeks pencarian untuk menanyakan data, Anda dapat menggunakan metode kueri berikut: kueri tepat, kueri terms, kueri match all, kueri match, kueri match phrase, kueri prefix, kueri range, kueri wildcard, kueri Boolean, kueri geo, kueri nested, dan kueri exists. Anda dapat menggunakan metode kueri yang berbeda untuk menanyakan data dari beberapa dimensi sesuai dengan kebutuhan bisnis Anda.

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

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

  • Jika Anda ingin menganalisis data dalam tabel data, Anda dapat menggunakan fitur agregasi operasi Search atau menjalankan pernyataan SQL. Misalnya, Anda dapat memperoleh nilai minimum dan maksimum, jumlah, dan total baris. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.

  • Jika Anda ingin 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.