Meta管理提供了增、删、改、单行读、多条件组合查询等接口。
Meta管理的多条件组合查询功能基于多元索引,只有设置了IndexSchema的MetaStore才支持。索引类型支持LONG、DOUBLE、BOOLEAN、KEYWORD和GEO_POINT等类型,属性包含Index、Store和Array,其含义与多元索引相同。更多信息,请参见数据类型映射。
Insert
TimelineIdentifer是区分Timeline的唯一标识,重复的Identifier会被覆盖。
TimelineIdentifier identifier = new TimelineIdentifier.Builder()
.addField("timeline_id", "group")
.build();
TimelineMeta meta = new TimelineMeta(identifier)
.setField("filedName", "fieldValue");
timelineMetaStore.insert(meta);
Read
根据Identifier读取单行TimelineMeta数据。
TimelineIdentifier identifier = new TimelineIdentifier.Builder()
.addField("timeline_id", "group")
.build();
timelineMetaStore.read(identifier);
Update
更新TimelineIdentifier所对应的Meta属性。
TimelineIdentifier identifier = new TimelineIdentifier.Builder()
.addField("timeline_id", "group")
.build();
TimelineMeta meta = new TimelineMeta(identifier)
.setField("filedName", "new value");
timelineMetaStore.update(meta);
Delete
根据Identifier删除单行TimelineMeta数据。
TimelineIdentifier identifier = new TimelineIdentifier.Builder()
.addField("timeline_id", "group")
.build();
timelineMetaStore.delete(identifier);
Search
提供两种查询参数,SearchParameter以及SDK原生类SearchQuery,返回Iterator<TimelineMeta>,通过迭代器遍历。
/**
* Search meta by SearchParameter.
* */
SearchParameter parameter = new SearchParameter(
field("fieldName").equals("fieldValue")
);
timelineMetaStore.search(parameter);
/**
* Search meta by SearchQuery.
* */
TermQuery query = new TermQuery();
query.setFieldName("fieldName");
query.setTerm(ColumnValue.fromString("fieldValue"));
SearchQuery searchQuery = new SearchQuery().setQuery(query);
timelineMetaStore.search(searchQuery);