摺疊(去重)
前提條件
已初始化OTSClient。具體操作,請參見初始化Tablestore Client。
已在資料表上建立多元索引。具體操作,請參見建立多元索引。
注意事項
摺疊功能只能使用offset+limit方式翻頁,不能使用token方式。
對結果集同時使用統計彙總與摺疊功能時,統計彙總功能只作用於使用摺疊功能前的結果集。
使用摺疊功能後,返回的總分組數取決於offset+limit的最大值,目前支援返回的總分組數最大為100000。
執行結果中返回的總行數是使用摺疊功能前的匹配行數,使用摺疊功能後的總分組數無法擷取。
參數
|
參數 |
是否必填 |
說明 |
|
table_name |
必填 |
資料表名稱。 |
|
index_name |
必填 |
多元索引名稱。 |
|
query |
必填 |
查詢類型,支援所有 Query 類型。 |
|
collapse |
必填 |
摺疊參數,用於按指定列對結果集去重,每組僅保留排序最靠前的一條記錄。包含以下子參數: field_name(必填):摺疊列名稱。僅支援整數、浮點數和 Keyword 類型的列,不支援數群組類型的列。 |
|
offset |
必填 |
本次查詢的起始位置。 |
|
limit |
必填 |
本次查詢返回的最大行數。若只需擷取行數而不需要具體資料,可將 limit 設定為 0。 |
樣本
以下樣本用於在php_sdk_test表中尋找資料,通過索引快速擷取最多10條不重複keyword的記錄,同時返回col1、col2兩列的資料。
$request = array(
'table_name' => 'php_sdk_test',
'index_name' => 'php_sdk_test_search_index',
'search_query' => array(
'offset' => 0,
'limit' => 10,
'get_total_count' => true,
'collapse' => array(
'field_name' => 'keyword'
),
'query' => array(
'query_type' => QueryTypeConst::MATCH_ALL_QUERY
),
// 'sort' => array(//如果需要特定排序。
// array(
// 'field_sort' => array(
// 'field_name' => 'keyword',
// 'order' => SortOrderConst::SORT_ORDER_ASC
// )
// ),
// ),
'token' => null,
),
'columns_to_get' => array(
'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
'return_names' => array('col1', 'col2')
)
);
$response = $otsClient->search($request);常見問題
相關文檔
多元索引查詢類型包括精確查詢、多詞精確查詢、全匹配查詢、匹配查詢、短語匹配查詢、首碼查詢、範圍查詢、萬用字元查詢、多條件組合查詢、地理位置查詢、巢狀型別查詢和列存在性查詢,您可以選擇合適的查詢類型進行多維度資料查詢。
如果要對結果集進行排序或者翻頁,您可以使用排序和翻頁功能來實現。具體操作,請參見排序和翻頁。
如果要按照某一列對結果集做摺疊,使對應類型的資料在結果展示中只出現一次,您可以使用摺疊(去重)功能來實現。具體操作,請參見摺疊(去重)。
如果要進行資料分析,例如求最值、求和、統計行數等,您可以使用Search介面的統計彙總功能或者SQL查詢來實現。具體操作,請參見統計彙總和SQL查詢。
如果要快速匯出資料,而不關心整個結果集的順序時,您可以使用ParallelScan介面和ComputeSplits介面實現多並發匯出資料。具體操作,請參見並發匯出資料。