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.
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sorgu yapılandırması
search_query parametresi SearchQuery türündedir ve aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Daraltma yapılandırması
search_query.collapse_field parametresi Collapse türündedir ve aşağıdaki parametreyi içerir.
|
|
|
|
|
|
|
|
Döndürme sütunları
columns_to_get parametresi ColumnsToGet türündedir ve aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
Yanıt
search yöntemi SearchResponse döndürür. Aşağıdaki tabloda temel alanlar açıklanmaktadır.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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()