前提条件
已初始化OTSClient。具体操作,请参见初始化Tablestore Client。
已在数据表上创建多元索引。具体操作,请参见创建多元索引。
参数
|
参数 |
说明 |
|
TableName |
数据表名称。 |
|
IndexName |
多元索引名称。 |
|
Query |
查询类型,设置为 TermsQuery。 |
|
FieldName |
目标匹配字段名称。 |
|
Terms |
查询关键词列表。字段值与任意一个关键词精确匹配,该行数据即被返回。 |
|
Limit |
返回结果的最大行数。 设置为 0 时只返回匹配行数,不返回具体数据。 |
|
ColumnsToGet |
指定返回的列,通过 ReturnAll、Columns 或 ReturnAllFromIndex 配置。 ReturnAll 默认为 false,仅返回主键列。如需返回其他列,可通过以下方式配置:
设置 ReturnAll 为 true,返回数据表中的所有列。 |
示例
以下示例查询 Col_Keyword 列精确匹配 "SearchIndex" 或 "Sample" 的数据。
/// <summary>
/// 查询 Col_Keyword 列精确匹配 "SearchIndex" 或 "Sample" 的数据。
/// </summary>
/// <param name="otsClient"></param>
public static void TermsQuery(OTSClient otsClient)
{
TermsQuery termsQuery = new TermsQuery();
termsQuery.FieldName = "Col_Keyword";
termsQuery.Terms = new List<ColumnValue>
{
new ColumnValue("SearchIndex"),
new ColumnValue("Sample")
};
SearchQuery searchQuery = new SearchQuery();
searchQuery.Query = termsQuery;
SearchRequest searchRequest = new SearchRequest(TableName, IndexName, searchQuery);
// 通过 ColumnsToGet 指定返回列:多元索引所有列、指定列名或数据表所有列。
// 不设置时默认只返回主键列。
searchRequest.ColumnsToGet = new ColumnsToGet
{
// 返回多元索引中的所有列。
ReturnAllFromIndex = true
// 返回指定列。
//Columns = new List<string>() { Long_type_col, Text_type_col, Keyword_type_col }
// 返回数据表中的所有列。
//ReturnAll = true
};
SearchResponse searchResponse = otsClient.Search(searchRequest);
Console.WriteLine(JsonConvert.SerializeObject(searchResponse));
}
常见问题
相关文档
多元索引查询类型包括精确查询、多词精确查询、全匹配查询、匹配查询、短语匹配查询、前缀查询、范围查询、通配符查询、多条件组合查询、地理位置查询、嵌套类型查询和列存在性查询,您可以选择合适的查询类型进行多维度数据查询。
如果要对结果集进行排序或者翻页,您可以使用排序和翻页功能来实现。具体操作,请参见排序和翻页。
如果要按照某一列对结果集做折叠,使对应类型的数据在结果展示中只出现一次,您可以使用折叠(去重)功能来实现。具体操作,请参见折叠(去重)。
如果要进行数据分析,例如求最值、求和、统计行数等,您可以使用Search接口的统计聚合功能或者SQL查询来实现。具体操作,请参见统计聚合和SQL查询。
如果要快速导出数据,而不关心整个结果集的顺序时,您可以使用ParallelScan接口和ComputeSplits接口实现多并发导出数据。具体操作,请参见并发导出数据。