赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 表格存储
  4. 开发参考
  5. SDK参考
  6. Python SDK
  7. 多元索引
  8. 数据查询
  9. 基础查询
  10. 全匹配查询

全匹配查询

  • 基础查询
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

MatchAllQuery可以匹配所有行,常用于查询表中数据总行数,或者随机返回几条数据。

前提条件

  • 已初始化OTSClient。具体操作,请参见初始化OTSClient。
  • 已创建数据表并写入数据。
  • 已在数据表上创建多元索引。具体操作,请参见创建多元索引。

参数

参数

描述

query

设置查询类型为MatchAllQuery。

table_name

数据表名称。

index_name

多元索引名称。

limit

本次查询需要返回的最大数量。

如果只为了获取行数,无需获取具体数据,可以设置limit=0,即不返回任意一行数据。

get_total_count

是否返回匹配的总行数,默认为false,表示不返回。

返回匹配的总行数会影响查询性能。

columns_to_get

是否返回所有列。

  • 当设置return_type为ColumnReturnType.SPECIFIED时,可以通过column_names指定返回的列。

  • 当设置return_type为ColumnReturnType.ALL时,表示返回所有列。

  • 当设置return_type为ColumnReturnType.NONE时,表示不返回所有列,只返回主键列。

示例

以下示例用于查询表中数据的总行数。

  • 5.2.1及之后版本

    使用5.2.1及之后的SDK版本时,默认的返回结果为SearchResponse对象,请求示例如下:

    query=MatchAllQuery()
    all_rows=[]
    next_token=None
    first_page=True
    
    while first_page or next_token:
        search_response=client.search(table_name, index_name,
            SearchQuery(query,next_token=next_token,limit=100,get_total_count=True),
            columns_to_get=ColumnsToGet(['k','t','g','ka','la'],ColumnReturnType.SPECIFIED))
        all_rows.extend(search_response.rows)
        first_page=False
    for row in all_rows:
        print(row)
    
    print('Totalrows:', len(all_rows))
    

    如果需要返回Tuple类型结果,您可以使用如下请求示例实现。

    query=MatchAllQuery()
    all_rows=[]
    next_token=None
    first_page=True
    
    while first_page or next_token:
        rows, next_token, total_count, is_all_succeed, agg_results, group_by_results =client.search(table_name, index_name,
            SearchQuery(query,next_token=next_token,limit=100,get_total_count=True),
            columns_to_get=ColumnsToGet(['k','t','g','ka','la'],ColumnReturnType.SPECIFIED)).v1_response()
        all_rows.extend(rows)
        first_page=False
    for row in all_rows:
        print(row)
    
    print('Totalrows:', len(all_rows))
    
  • 5.2.1之前版本

    使用5.2.1之前的SDK版本时,默认的返回结果为Tuple类型,请求示例如下:

    query=MatchAllQuery()
    all_rows=[]
    next_token=None
    first_page=True
    while first_page or next_token:
        rows, next_token, total_count, is_all_succeed = client.search(table_name, index_name,
            SearchQuery(query, next_token=next_token, limit=100, get_total_count=True),
            columns_to_get=ColumnsToGet(['k', 't', 'g', 'ka', 'la'], ColumnReturnType.SPECIFIED))
        all_rows.extend(rows)
        first_page=False
    for row in all_rows:
        print(row)
    
    print('Total rows:', len(all_rows))
相关文章

全匹配查询 2025-04-22 14:24

MatchAllQuery可以匹配所有行,常用于查询表中数据总行数,或者随机返回几条数据。 前提条件

精确查询 2025-04-22 14:24

TermQuery采用完整精确匹配的方式查询表中的数据,类似于字符串匹配。对于Text类型字段,只要分词后有词条可以精确匹配即可。

多词精确查询 2025-04-22 14:24

类似于TermQuery,但是TermsQuery可以指定多个查询关键词,查询匹配这些词的数据。多个查询关键词中只要有一个词精确匹配,该行数据就会被返回,等价于SQL中的In。

前缀查询 2025-04-22 14:24

PrefixQuery根据前缀条件查询表中的数据。对于Text类型字段,只要分词后的词条中有词条满足前缀条件即可。

范围查询 2025-04-22 14:24

RangeQuery根据范围条件查询表中的数据。对于Text类型字段,只要分词后的词条中有词条满足范围条件即可。

通配符查询 2025-04-22 14:24

通配符查询中,要匹配的值可以是一个带有通配符的字符串,目前支持星号(*)和半角问号(?)两种通配符。要匹配的值中可以用星号(*)代表任意字符序列,或者用问号(?)代表任意单个字符,且支持以星号(*)或半角问号(?)开头。例如查询“table*e”,可以匹配到“tablestore”。 如果查询的模式

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号