日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

檢索Lastpoint索引

多元索引可以加速Lastpoint索引的數據檢索,并提供多維查詢和統計分析功能。本文介紹在Go SDK中如何通過多元索引來檢索Lastpoint索引數據。

注意事項

表格存儲Go SDKv1.7.15版本開始支持Lastpoint索引功能。使用該功能時,請將SDK版本升級到v1.7.15及以上版本。

前提條件

已在時序表上創建Lastpoint索引。具體操作,請參見創建Lastpoint索引

使用流程

1. 創建多元索引

以下示例用于為Lastpoint索引創建一個多元索引。示例場景及數據請參見附錄

說明

示例中_tags列為標簽構成的字符串數組,建議將對應的多元索引字段類型設置為Keyword數組,以便更加方便地對_tags內的標簽進行查詢。

func createSearchIndex(client *tablestore.TableStoreClient) {
	request := &tablestore.CreateSearchIndexRequest{}
	request.TableName = "<LASTPOINT_INDEX_NAME>"
	request.IndexName = "<SEARCH_INDEX_NAME>"
	request.IndexSchema = &tablestore.IndexSchema{
		FieldSchemas: []*tablestore.FieldSchema{
			{
				FieldName:        proto.String("_#h"),
				FieldType:        tablestore.FieldType_KEYWORD,
				Index:            proto.Bool(true),
				EnableSortAndAgg: proto.Bool(true),
			},
			{
				FieldName:        proto.String("_m_name"),
				FieldType:        tablestore.FieldType_KEYWORD,
				Index:            proto.Bool(true),
				EnableSortAndAgg: proto.Bool(true),
			},
			{
				FieldName:        proto.String("_data_source"),
				FieldType:        tablestore.FieldType_KEYWORD,
				Index:            proto.Bool(true),
				EnableSortAndAgg: proto.Bool(true),
			},
			{
				FieldName:        proto.String("_tags"),
				FieldType:        tablestore.FieldType_KEYWORD,
				Index:            proto.Bool(true),
				EnableSortAndAgg: proto.Bool(true),
				IsArray:          proto.Bool(true),
			},
			{
				FieldName:        proto.String("_time"),
				FieldType:        tablestore.FieldType_LONG,
				Index:            proto.Bool(true),
				EnableSortAndAgg: proto.Bool(true),
			},
			{
				FieldName:        proto.String("gps"),
				FieldType:        tablestore.FieldType_GEO_POINT,
				Index:            proto.Bool(true),
				EnableSortAndAgg: proto.Bool(true),
			},
			{
				FieldName:        proto.String("speed"),
				FieldType:        tablestore.FieldType_DOUBLE,
				Index:            proto.Bool(true),
				EnableSortAndAgg: proto.Bool(true),
			},
			{
				FieldName:        proto.String("status"),
				FieldType:        tablestore.FieldType_KEYWORD,
				Index:            proto.Bool(true),
				EnableSortAndAgg: proto.Bool(true),
			},
			{
				FieldName:        proto.String("total_mileage"),
				FieldType:        tablestore.FieldType_LONG,
				Index:            proto.Bool(true),
				EnableSortAndAgg: proto.Bool(true),
			},
			{
				FieldName:        proto.String("remaining_mileage"),
				FieldType:        tablestore.FieldType_LONG,
				Index:            proto.Bool(true),
				EnableSortAndAgg: proto.Bool(true),
			},
		},
	}
	_, err := client.CreateSearchIndex(request)
	if err != nil {
		fmt.Println("Failed to create searchIndex with error:", err)
		return
	}
}

2. 通過多元索引檢索數據

此處以范圍查詢為例介紹多元索引查詢功能的使用。

以下示例用于通過多元索引檢索Lastpoint索引中speed值大于20.0的行數據。

func RangeQuery(client *tablestore.TableStoreClient, lastpointName string, indexName string) {
	searchRequest := &tablestore.SearchRequest{}
	searchRequest.SetTableName(lastpointName)
	searchRequest.SetIndexName(indexName)
	searchQuery := search.NewSearchQuery()
	rangeQuery := &search.RangeQuery{} //設置查詢類型為RangeQuery。
	rangeQuery.FieldName = "speed" //設置要匹配的字段
	rangeQuery.GT(20.0)                //設置該字段的范圍條件為大于20.0。
	searchQuery.SetQuery(rangeQuery)
	//設置按照speed列逆序排序。
	searchQuery.SetSort(&search.Sort{
		[]search.Sorter{
			&search.FieldSort{
				FieldName: "speed",
				Order:     search.SortOrder_DESC.Enum(),
			},
		},
	})
	searchRequest.SetSearchQuery(searchQuery)
	searchRequest.SetColumnsToGet(&tablestore.ColumnsToGet{
		ReturnAll: true,
	})
	searchResponse, err := client.Search(searchRequest)
	if err != nil {
		fmt.Printf("%#v", err)
		return
	}
	fmt.Println("IsAllSuccess: ", searchResponse.IsAllSuccess) //查看返回結果是否完整。
	fmt.Println("RowCount: ", len(searchResponse.Rows))
	for _, row := range searchResponse.Rows {
		jsonBody, err := json.Marshal(row)
		if err != nil {
			panic(err)
		}
		fmt.Println("Row: ", string(jsonBody))
	}
}

常見問題

相關文檔

多元索引的核心功能包括任意列的查詢(包括主鍵列和非主鍵列)、多字段自由組合查詢、地理位置查詢、全文檢索、模糊查詢、前綴查詢、嵌套查詢、去重、排序、查詢數據總行數和統計聚合等。更多信息,請參見多元索引功能

附錄

在車聯網場景中,車輛通過傳感器上報時序數據到云端。通過存儲、查詢和分析這些時序數據,用戶可以實現車況報告、車輛定位、交通管理和軌跡投屏等業務需求。

假設時序表的數據示例如下:

說明

其中_m_name_data_source_tags為時間線標識,分別代表度量名稱、數據源和時間線的標簽信息,_time為數據上報時間。gpsspeedstatustotal_mileageremaining_mileage為時間線的時序數據,分別代表車輛GPS坐標、車輛速度、車輛狀態、車輛總里程和車輛剩余里程。

_m_name

_data_source

_tags

_time

gps

speed

status

total_mileage

remaining_mileage

平臺A

sensor1

["region=hangzhou","car_model=sedan","number_plate=浙AD7512*","color=white"]

1730422800000000

30.245853,120.178564

0

閑置

20000

450

平臺A

sensor1

["region=hangzhou","car_model=sedan","number_plate=浙AD7512*","color=white"]

1730423400000000

30.245853,120.178564

0

閑置

20000

450

平臺A

sensor2

["region=hangzhou","car_model=suv","number_plate=浙C72B2*","color=black"]

1730779200000000

30.245278,120.150269

50

使用中

15000

300

平臺A

sensor2

["region=hangzhou","car_model=suv","number_plate=浙C72B2*","color=black"]

1730779800000000

30.245853,120.213654

80

使用中

15050

250

平臺B

sensor3

["region=hangzhou","car_model=sedan","number_plate=浙B121*9","color=blue"]

1730862000000000

30.246013,120.124470

60

使用中

18200

300

平臺B

sensor3

["region=hangzhou","car_model=sedan","number_plate=浙B121*9","color=blue"]

1730862600000000

30.246022,120.124460

0

閑置

18230

270

表格存儲會自動同步時序表中時間線的最新時間點數據到Lastpoint索引表,Lastpoint索引中的數據示例如下:

_#h

_m_name

_data_source

_tags

_time

gps

speed

status

total_mileage

remaining_mileage

4c#平臺A#07

平臺A

sensor1

["region=hangzhou","car_model=sedan","number_plate=浙AD7512*","color=white"]

1730423400000000

30.245853,120.178564

0

閑置

20000

450

25#平臺A#ae

平臺A

sensor2

["region=hangzhou","car_model=suv","number_plate=浙C72B2*","color=black"]

1730779800000000

30.245853,120.213654

80

使用中

15050

250

b2#平臺B#4b

平臺B

sensor3

["region=hangzhou","car_model=sedan","number_plate=浙B121*9","color=blue"]

1730862600000000

30.246022,120.124460

0

閑置

18230

270