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