RangeQuery根據范圍條件查詢表中的數據。對于Text類型字段,只要Text類型字段值分詞后的詞條中有詞條滿足范圍條件即可。
前提條件
- 已初始化OTSClient。具體操作,請參見初始化OTSClient。
- 已創建數據表并寫入數據。
- 已在數據表上創建多元索引。具體操作,請參見創建多元索引。
參數
參數 | 說明 |
table_name | 數據表名稱。 |
index_name | 多元索引名稱。 |
offset | 本次查詢的開始位置。 |
limit | 本次查詢需要返回的最大數量。 如果只為了獲取行數,無需獲取具體數據,可以設置limit=0,即不返回任意一行數據。 |
get_total_count | 是否返回匹配的總行數,默認為False,表示不返回。 返回匹配的總行數會影響查詢性能。 |
query_type | 設置查詢類型為 |
field_name | 要匹配的字段。 |
range_from | 起始位置的值。 |
range_to | 結束位置的值。 |
include_lower | 結果中是否需要包括range_from值,類型為Boolean。 |
include_upper | 結果中是否需要包括range_to值,類型為Boolean。 |
sort | 按照指定方式排序。更多信息,請參見排序和翻頁。 |
columns_to_get | 是否返回所有列,包含return_type和column_names設置。
|
示例
以下示例用于查詢表中long列大于等于100但小于101的數據,結果按照keyword列的值升序排序。
$request = array(
'table_name' => 'php_sdk_test',
'index_name' => 'php_sdk_test_search_index',
'search_query' => array(
'offset' => 0,
'limit' => 2,
'get_total_count' => true,
'query' => array(
'query_type' => QueryTypeConst::RANGE_QUERY,
'query' => array(
'field_name' => 'long',
'range_from' => 100,
'include_lower' => true,
'range_to' => 101,
'include_upper' => false
)
),
'sort' => array(
array(
'field_sort' => array(
'field_name' => 'keyword',
'order' => SortOrderConst::SORT_ORDER_ASC
)
),
)
),
'columns_to_get' => array(
'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
'return_names' => array('double', 'long', 'keyword')
)
);
$response = $otsClient->search($request);
常見問題
相關文檔
多元索引查詢類型包括精確查詢、多詞精確查詢、全匹配查詢、匹配查詢、短語匹配查詢、前綴查詢、范圍查詢、通配符查詢、多條件組合查詢、地理位置查詢、嵌套類型查詢和列存在性查詢,您可以選擇合適的查詢類型進行多維度數據查詢。
如果要對結果集進行排序或者翻頁,您可以使用排序和翻頁功能來實現。具體操作,請參見排序和翻頁。
如果要按照某一列對結果集做折疊,使對應類型的數據在結果展示中只出現一次,您可以使用折疊(去重)功能來實現。具體操作,請參見折疊(去重)。
如果要進行數據分析,例如求最值、求和、統計行數等,您可以使用Search接口的統計聚合功能或者SQL查詢來實現。具體操作,請參見統計聚合和SQL查詢。
如果要快速導出數據,而不關心整個結果集的順序時,您可以使用ParallelScan接口和ComputeSplits接口實現多并發導出數據。具體操作,請參見并發導出數據。