本文介绍如何使用表格存储搭建亿量级店铺搜索系统。
前提条件
已完成准备工作。
步骤一: 创建数据表
通过控制台、命令行工具或者SDK方式创建一张店铺信息表。具体操作,请参见数据表操作。
步骤二: 创建多元索引
为数据表创建多元索引后,表格存储会自动进行全量、增量的索引数据同步。您可以通过控制台、命令行工具或SDK方式创建和管理多元索引。具体操作,请参见通过控制台使用多元索引、通过命令行工具使用多元索引或通过SDK使用多元索引。
步骤三: 导入数据
通过控制台插入少量测试数据。
店铺编号 | 店铺(md5)(主键) | 类型 | 店铺名称 | 店铺位置 | 店铺评分 | 人均消费 |
店铺编号 | 店铺(md5)(主键) | 类型 | 店铺名称 | 店铺位置 | 店铺评分 | 人均消费 |
o0057022192 | 0000000f470ef0ef0f0f548b925ceffela7e3 | 杭帮菜 | 韩村杭帮菜 | 36.76613,111.41461 | 2.87 | 63.67 |
步骤四: 读取数据
数据读取分为主键读取和索引读取两类。具体说明如下:
主键读取
基于原生表格存储的主键列获取,例如GetRow、GetRange、BatchGetRow等。主键读取用于索引(自动)反查,您也可以提供主键(订单md5)的单条查询的页面给目标用户,亿量级下查询速度极快。单主键查询方式不支持多维度检索。
索引读取(店铺查询)
基于多元索引的Search接口获取数据。您可以自由设计索引字段的多维度条件组合查询。通过设置选择不同的查询参数,构建不同的查询条件和排序方式。目前支持精确查询、范围查询、前缀查询、匹配查询、通配符查询、短语匹配查询、分词字符串查询,并通过布尔与、或组合多条件查询。
例如“36.76613,111.41461”周边1 km范围内的奶茶店,查询条件如下:
List<Query> mustQueries = new ArrayList<Query>(); TermQuery termQuery = new TermQuery(); termQuery.setFieldName("type"); termQuery.setTerm(ColumnValue.fromString("奶茶")); mustQueries.add(termQuery); GeoDistanceQuery geoDistanceQuery = new GeoDistanceQuery(); geoDistanceQuery.setFieldName("pos"); geoDistanceQuery.setCenterPoint("36.76613,111.41461"); geoDistanceQuery.setDistanceInMeter(1000); mustQueries.add(geoDistanceQuery); BoolQuery boolQuery = new BoolQuery(); boolQuery.setMustQueries(mustQueries);
技术支持
表格存储为您提供专业的免费的技术咨询服务,欢迎通过钉钉加入相应交流群。
为互联网应用、大数据、社交应用等开发者提供的最新技术交流群有36165029092(
表格存储技术交流群-3
)。表格存储用户群11789671(
表格存储技术交流群
)和23307953(表格存储技术交流群-2
)已满,暂时无法加入。为物联网和时序模型开发者提供的技术交流群有44327024(
物联网存储 IoTstore 开发者交流群
)。
- 本页导读 (1)
- 前提条件
- 步骤一: 创建数据表
- 步骤二: 创建多元索引
- 步骤三: 导入数据
- 步骤四: 读取数据
- 技术支持