多元索引
多元索引(Search Index)基于倒排索引和列式存储,可以解决大数据的多维查询和统计分析难题。本文介绍如何通过Python SDK使用多元索引。
索引管理
多元索引支持的管理操作请参见下表说明。
操作 | 说明 |
为数据表创建一个多元索引。 | |
列出指定表下的多元索引。 | |
更新多元索引的数据生命周期。 | |
查询多元索引的描述信息,包括多元索引的字段信息和索引配置等。 | |
删除不需要的多元索引。 | |
按需清理多元索引中的历史数据或者延长数据保存时间。 |
数据类型
多元索引不仅提供了Long、Double、Boolean、Keyword、Text、Date、Geopoint、Vector等基本数据类型,还提供了数组类型和嵌套类型两种特殊类型。更多信息,请参见数据类型。
数据查询
多元索引支持的查询功能请参见下表说明,请按需选择合适的查询类型。
功能分类 | 查询类型 | 说明 |
基础查询 | 匹配所有行,常用于查询表中数据总行数,或者随机返回几条数据。 | |
采用完整精确匹配的方式查询表中的数据,类似于字符串匹配。 | ||
支持指定多个查询关键词,查询匹配这些词的数据。多个查询关键词中只要有一个词能精确匹配,该行数据就会被返回,等价于SQL中的In。 | ||
根据指定前缀条件查询表中的数据。 | ||
根据指定范围条件查询表中的数据。 | ||
根据带通配符的字符串查询表中的数据。 | ||
NULL查询或者空值查询,一般用于判断稀疏数据中某一行的某一列是否存在。 | ||
按照某一列对结果集做折叠,使对应类型的数据在结果展示中只出现一次,保证结果展示中类型的多样性。 | ||
包括地理距离查询、地理长方形范围查询和地理多边形范围查询三种方式。
| ||
查询嵌套类型字段中的子行数据。 | ||
数据处理 | 使用多元索引查询数据时,通过预先定义排序方式或者查询时指定排序方式,您可以按照指定排列方式获取到返回数据。 当返回结果行数较多时,通过使用跳转翻页或者连续翻页可以快速定位到所需数据。 | |
可以实现求最小值、求最大值、求和、求平均值、统计行数、去重统计行数、百分位统计、按字段值分组、按范围分组、按地理位置分组、按过滤条件分组、直方图统计、日期直方图统计、获取统计聚合分组内的行、嵌套查询等;同时多个统计聚合功能可以组合使用,满足复杂的查询需求。 | ||
组合查询 | 查询条件支持包含一个或者多个子查询条件,根据子查询条件来判断一行数据是否满足查询条件。 | |
全文检索 | 采用近似匹配的方式查询表中的数据。 | |
类似于匹配查询,但是分词后多个词的位置关系会被考虑,只有分词后的多个词在行数据中以同样的顺序和位置存在时,才表示行数据满足查询条件。 | ||
在查询数据时通过设置高亮参数,返回命中查询词的片段信息并对查询词进行高亮显示。 | ||
向量检索 | 使用数值向量进行近似最近邻查询,可以在大规模数据集中找到最相似的数据项。 |
数据导出
当使用场景中不关心整个结果集的顺序时,如需以更快的速度将命中的数据全部返回,请参见并发导出数据。