Meta management provides APIs for insertion, deletion, updates, single-row reads, and multi-conditional queries.
The multi-conditional query feature is based on search indexes and is only supported by a MetaStore with a configured IndexSchema. Supported index types include LONG, DOUBLE, BOOLEAN, KEYWORD, and GEO_POINT. The available properties are Index, Store, and Array. These properties have the same meaning as in a search index. For more information, see Data types.
Insert
A TimelineIdentifier is the unique identity for a Timeline. Entries with duplicate identifiers are overwritten.
TimelineIdentifier identifier = new TimelineIdentifier.Builder()
.addField("timeline_id", "group")
.build();
TimelineMeta meta = new TimelineMeta(identifier)
.setField("filedName", "fieldValue");
timelineMetaStore.insert(meta);
Read
You can read a single row of TimelineMeta data based on its identifier.
TimelineIdentifier identifier = new TimelineIdentifier.Builder()
.addField("timeline_id", "group")
.build();
timelineMetaStore.read(identifier);
Update
You can update the meta properties that correspond to a TimelineIdentifier.
TimelineIdentifier identifier = new TimelineIdentifier.Builder()
.addField("timeline_id", "group")
.build();
TimelineMeta meta = new TimelineMeta(identifier)
.setField("filedName", "new value");
timelineMetaStore.update(meta);
Delete
You can delete a single row of TimelineMeta data based on its identifier.
TimelineIdentifier identifier = new TimelineIdentifier.Builder()
.addField("timeline_id", "group")
.build();
timelineMetaStore.delete(identifier);
Search
The search operation accepts two types of query parameters: `SearchParameter` and the native SDK class `SearchQuery`. It returns an `Iterator<TimelineMeta>`, which you can traverse to retrieve the results.
/**
* 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);