本文主要為您介紹如何使用表格存儲搭建億量級店鋪搜索系統。
前提條件
已完成準備工作。
步驟一: 創建數據表
通過控制臺、命令行工具或者SDK方式創建一張店鋪信息表。具體操作,請參見數據表操作。
步驟二: 創建數據表索引
表格存儲自動進行全量、增量的索引數據同步。您可以通過控制臺、命令行工具或者SDK方式創建和管理多元索引。具體操作,請參見通過控制臺使用多元索引、。
步驟三: 導入數據
控制臺項目樣例中插入了1億條數據,您可以通過控制臺插入少量測試數據。
店鋪編號 | 店鋪(md5)(主鍵) | 類型 | 店鋪名稱 | 店鋪位置 | 店鋪評分 | 人均消費 |
o0057022192 | 0000000f470ef0ef0f0f548b925ceffela7e3 | 杭幫菜 | 韓村杭幫菜 | 36.76613,111.41461 | 2.87 | 63.67 |
步驟四: 讀取數據
數據讀取分為兩類:
主鍵讀取
基于原生表格存儲的主鍵列獲取。主鍵讀取用于索引(自動)反查,您也可以提供主鍵(訂單md5)的單條查詢的頁面,億量級下查詢速度極快。單主鍵查詢方式不支持多維度檢索。
索引讀取(店鋪查詢)
基于SearchIndex功能Query的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 開發者交流群
)。