Skip to content

Commit 472ee7b

Browse files
杨恋杨恋
authored andcommitted
support sorter for MetaFilter and filter of fields for DataGetter
1 parent 6c9f7b4 commit 472ee7b

31 files changed

+2219
-166
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.aliyun.openservices</groupId>
66
<artifactId>tablestore</artifactId>
7-
<version>4.12.1</version>
7+
<version>4.12.2</version>
88
<packaging>jar</packaging>
99
<name>AliCloud TableStore SDK for Java</name>
1010
<url>http://www.aliyun.com</url>

src/main/java/com/alicloud/openservices/tablestore/timestream/TimestreamDBClient.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717

1818
/**
1919
* {@link TimestreamDBClient}定义,提供删建表,以及数据读写功能。
20-
* <p>后台默认打开自动更新时间线updateTime功能,可以通过{@link TimestreamDBConfiguration#enableDumpMeta}选择关闭 </p>
21-
* <p>当后台打开自动更新时间线updateTime功能时({@link TimestreamDBConfiguration#enableDumpMeta}),TimestreamDBClient后台会维护一个内存缓存最近更新过的时间线。数据写入时,会判断该时间线是否需要更新updateTime(缓存中没有或者上次更新时间线超过设置的阈值),
20+
* <p>后台默认打开自动更新时间线updateTime功能,可以通过{@link TimestreamDBConfiguration#dumpMeta}选择关闭 </p>
21+
* <p>当后台打开自动更新时间线updateTime功能时({@link TimestreamDBConfiguration#dumpMeta}),TimestreamDBClient后台会维护一个内存缓存最近更新过的时间线。数据写入时,会判断该时间线是否需要更新updateTime(缓存中没有或者上次更新时间线超过设置的阈值),
2222
* 如果需要更新则往meta表中插入一条记录(只更新updateTime)。</p>
2323
* <p>数据写入的异步api是通过{@link TableStoreWriter}来实现的,如果需要获取异步写入的结果,可以传入{@link TableStoreCallback},该callback是所有数据表写入共用的</p>
2424
*/
@@ -187,9 +187,9 @@ private IndexSchema getIndexSchema(List<AttributeIndexSchema> indexForAttributes
187187
fieldSchemas.add(
188188
new FieldSchema(TableMetaGenerator.CN_PK0, FieldType.KEYWORD));
189189
fieldSchemas.add(
190-
new FieldSchema(TableMetaGenerator.CN_PK1, FieldType.KEYWORD).setIndex(true));
190+
new FieldSchema(TableMetaGenerator.CN_PK1, FieldType.KEYWORD).setIndex(true).setEnableSortAndAgg(true));
191191
fieldSchemas.add(
192-
new FieldSchema(TableMetaGenerator.CN_PK2, FieldType.KEYWORD).setIndex(true).setIsArray(true));
192+
new FieldSchema(TableMetaGenerator.CN_PK2, FieldType.KEYWORD).setIndex(true).setIsArray(true).setEnableSortAndAgg(true));
193193
fieldSchemas.add(
194194
new FieldSchema(TableMetaGenerator.CN_TAMESTAMP_NAME, FieldType.LONG).setIndex(true).setStore(true));
195195
indexSchema.setFieldSchemas(fieldSchemas);

src/main/java/com/alicloud/openservices/tablestore/timestream/TimestreamMetaTable.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
import com.alicloud.openservices.tablestore.timestream.internal.Utils;
77
import com.alicloud.openservices.tablestore.timestream.model.TimestreamIdentifier;
88
import com.alicloud.openservices.tablestore.timestream.model.TimestreamMeta;
9-
import com.alicloud.openservices.tablestore.timestream.model.filter.Filter;
109
import com.alicloud.openservices.tablestore.timestream.model.query.MetaGetter;
1110
import com.alicloud.openservices.tablestore.timestream.model.query.MetaFilter;
11+
import com.alicloud.openservices.tablestore.timestream.model.condition.Condition;
1212

1313
import java.util.concurrent.Future;
1414

@@ -97,16 +97,16 @@ public MetaGetter get(TimestreamIdentifier identifier) {
9797
* 查询所有时间线
9898
* @return
9999
*/
100-
public MetaFilter filter() {
100+
public MetaFilter search() {
101101
return new MetaFilter(asyncClient, metaTableName, index, null);
102102
}
103103

104104
/**
105105
* 查询满足条件的时间线
106-
* @param filter 查询条件
106+
* @param condition 查询条件
107107
* @return
108108
*/
109-
public MetaFilter filter(Filter filter) {
110-
return new MetaFilter(asyncClient, metaTableName, index, filter);
109+
public MetaFilter search(Condition condition) {
110+
return new MetaFilter(asyncClient, metaTableName, index, condition);
111111
}
112112
}

src/main/java/com/alicloud/openservices/tablestore/timestream/model/AttributeIndexSchema.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,15 @@ public Boolean isArray() {
8181
return this.fieldSchema.isArray();
8282
}
8383

84+
public AttributeIndexSchema setEnableSortAndAgg(boolean enableSortAndAgg) {
85+
this.fieldSchema.setEnableSortAndAgg(enableSortAndAgg);
86+
return this;
87+
}
88+
89+
public Boolean isEnableSortAndAgg() {
90+
return this.fieldSchema.isEnableSortAndAgg();
91+
}
92+
8493
public FieldSchema getFieldSchema() {
8594
return this.fieldSchema;
8695
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.alicloud.openservices.tablestore.timestream.model.condition;
2+
3+
import com.alicloud.openservices.tablestore.model.search.query.BoolQuery;
4+
import com.alicloud.openservices.tablestore.model.search.query.Query;
5+
6+
import java.util.ArrayList;
7+
import java.util.Arrays;
8+
import java.util.List;
9+
10+
/**
11+
* and组合过滤器
12+
*/
13+
public class AndCondition implements Condition {
14+
private List<Condition> conditionList;
15+
16+
public AndCondition(Condition... conditions) {
17+
this.conditionList = Arrays.asList(conditions);
18+
}
19+
20+
public Query getQuery() {
21+
List<Query> queryList = new ArrayList<Query>();
22+
for (Condition c : conditionList) {
23+
queryList.add(c.getQuery());
24+
}
25+
BoolQuery boolQuery = new BoolQuery();
26+
boolQuery.setMustQueries(queryList);
27+
return boolQuery;
28+
}
29+
}

0 commit comments

Comments
 (0)