Tüm Ürünler
Search
Belge Merkezi

Tablestore:Collapse query results

Son Güncelleme:Oct 02, 2026

Tablestore SDK for Python kullanarak arama dizini sonuçlarını belirtilen bir alana göre daraltın ve her bir farklı alan değeri için tek bir satır döndürün.

Ön koşullar

Tablestore SDK for Python öğesini yükleyin ve bir istemci başlatın.

Açıklama

Belirtilen bir arama dizini alanına göre eşleşen satırları gruplandırır ve her bir farklı alan değeri için temsilci bir satır döndürür. Hangi satırın döndürüleceğini sorgu sıralama düzeni belirler. Daha fazla bilgi için bkz. Sonuçları sıralama ve sayfalara ayırma. Daraltma işlemi yalnızca sorgu sonuçlarını değiştirir; tabloyu değiştirmez.

Önemli

Daraltma alanı, sıralama ve toplama işlemlerinin etkinleştirilmiş olduğu, dizi olmayan bir Keyword, Long veya Double alanı olmalıdır. Daraltma sorguları sayfalama için yalnızca limit ve offset parametrelerini destekler; next_token desteklenmez. limit + offset toplamı 100000 değerini aşamaz. Toplamalar, gruplama ve toplam eşleşen satır sayısı daraltma öncesi sonuçlara göre hesaplanır. Yanıt, daraltılmış grupların toplam sayısını vermez.

Aşağıdaki örnekte sonuçlar category alanına göre daraltılır ve price alanına göre azalan sırada sıralanır. Bu nedenle, her kategori için en yüksek fiyata sahip satır döndürülür.

query = MatchAllQuery()
search_query = SearchQuery(
    query,
    sort=Sort([FieldSort("price", SortOrder.DESC)]),
    collapse_field=Collapse("category"),
    limit=10,
    get_total_count=True,
)
response = client.search(
    "example_table",
    "example_index",
    search_query,
    ColumnsToGet(
        ["category", "price"],
        ColumnReturnType.SPECIFIED,
    ),
)
print(response.total_count)
print(response.rows)

Parametreler

Arama isteği

search yöntemi aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


table_name (gerekli)


str


Veri tablosunun adı.


index_name (gerekli)


str


Arama dizininin adı.


search_query (gerekli)


SearchQuery


Sorgu koşulu ve genel sorgu yapılandırmaları.


columns_to_get (isteğe bağlı)


ColumnsToGet


Döndürme sütunu yapılandırması. Bu parametre belirtilmezse yalnızca birincil anahtar sütunları döndürülür.


routing_keys (isteğe bağlı)


list


Özel yönlendirme alanlarının birincil anahtar değerleri. Özel yönlendirme yapılandırılmamışsa bu parametre gerekmez.


timeout_s (isteğe bağlı)


int


Saniye cinsinden istek zaman aşımı. Bu parametre belirtilmezse istemci düzeyindeki zaman aşımı kullanılır.

Sorgu yapılandırması

search_query parametresi SearchQuery türündedir ve aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


query (gerekli)


Query


Sorgu koşulu. Eşleştirme gereksinimlerinize göre bir Query türü belirtin.


sort (isteğe bağlı)


Sort


Sonuçların sıralama düzeni. Daha fazla bilgi için bkz. Sonuçları sıralama ve sayfalara ayırma.


get_total_count (isteğe bağlı)


bool


Toplam eşleşen satır sayısının döndürülüp döndürülmeyeceğini belirtir. Varsayılan değer: False. Bu parametreyi True olarak ayarlamak sorgu yükünü artırır.


next_token (isteğe bağlı)


bytes


Daraltma sorgusu için bu parametreyi belirtmeyin.


offset (isteğe bağlı)


int


Başlangıç grubu konumu. Varsayılan değer: 0. Bu parametre ile limit parametresinin toplamı 100000 değerini aşamaz.


limit (isteğe bağlı)


int


Döndürülecek maksimum satır sayısı. Bu parametre 0 olarak ayarlanırsa hiçbir satır döndürülmez.


aggs (isteğe bağlı)


list[Agg]


Ölçüm toplama yapılandırmaları. Daha fazla bilgi için bkz. Toplama.


group_bys (isteğe bağlı)


list[BaseGroupBy]


Gruplama yapılandırmaları. Daha fazla bilgi için bkz. Toplama.


collapse_field (gerekli)


Collapse


Sonuç daraltma yapılandırması.


highlight (isteğe bağlı)


Highlight


Text alanları için özet ve vurgulama yapılandırması. Daha fazla bilgi için bkz. Özet ve vurgulama.

Daraltma yapılandırması

search_query.collapse_field parametresi Collapse türündedir ve aşağıdaki parametreyi içerir.


Ad


Tür


Açıklama


field_name (gerekli)


str


Daraltma alanının adı. Sıralama ve toplama işlemleri, bu dizi olmayan Keyword, Long veya Double alanı için etkinleştirilmelidir.

Döndürme sütunları

columns_to_get parametresi ColumnsToGet türündedir ve aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


column_names (isteğe bağlı)


list[str]


Döndürülecek nitelik sütunlarının adları. Bu parametreyi yalnızca return_type değeri SPECIFIED olduğunda belirtin.


return_type (isteğe bağlı)


ColumnReturnType


Döndürme sütunu modu. NONE (varsayılan) yalnızca birincil anahtar sütunlarını döndürür; SPECIFIED belirtilen nitelik sütunlarını döndürür; ALL tabloda bulunan tüm nitelik sütunlarını döndürür; ALL_FROM_INDEX ise dizinde depolanan tüm alanları döndürür.

Yanıt

search yöntemi SearchResponse döndürür. Aşağıdaki tabloda temel alanlar açıklanmaktadır.


Alan


Tür


Açıklama


rows


list[Row]


Daraltma sonrası satırlar. Her bir farklı daraltma alanı değeri için en fazla bir satır döndürülür.


next_token


bytes


Sonraki sayfa için belirteç. Boş bir değer, başka veri olmadığını gösterir.


total_count


int


Daraltma öncesi eşleşen satır sayısı. Değer, get_total_count parametresine bağlıdır ve daraltılmış grup sayısını temsil etmez.


is_all_succeed


bool


Tüm dizin bölümlerinin sorgulanıp sorgulanmadığını gösterir. Değer False ise kısmi sonuçlar döndürülür.


agg_results


list[AggResult]


Ölçüm toplama sonuçları. aggs yapılandırılmamışsa bu alan boştur.


group_by_results


list[GroupByResult]


Gruplama sonuçları. group_bys yapılandırılmamışsa bu alan boştur.


search_hits


list[SearchHit]


Satırlar, alaka puanları ve vurgulamalar gibi genişletilmiş bilgileri içeren arama eşleşmeleri.

Tuple uyumlu yanıt

Tablestore SDK for Python 5.2.0 sürümünden itibaren arama API'leri tuple yerine yanıt nesneleri döndürür. 5.1.0 ve önceki sürümler doğrudan tuple döndürür. 5.2.1 ve sonraki sürümlerde, önceki sürümlerle uyumlu bir tuple elde etmek için SearchResponse.v1_response() yöntemini çağırabilirsiniz. Yeni kodlarda, yanıt alanları genişletildiğinde paket açma hatalarını önlemek için SearchResponse özniteliklerine doğrudan erişin.

(
    rows,
    next_token,
    total_count,
    is_all_succeed,
    agg_results,
    group_by_results,
    search_hits,
) = response.v1_response()