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);