如何在冻结的地图中搜索Elassandra?

时间:2018-09-04 07:07:55

标签: elasticsearch-5 cassandra-3.0 elassandra

我正在使用elassandra版本6.2.3.4

我有一个如下所示的cassandra表结构:-

CREATE TABLE trackfleet_db.eventsgroup (
imei text,
week int,
event text,
startevent timestamp,
oevent text,
ostartevent timestamp,
duration double,
endevent timestamp,
eventdt timestamp,
eventstats map<text, frozen<eventstartend>>,
lat text,
long text,
odo int,
oduration double,
oendevent timestamp,
olat text,
olong text,
oodo int,
opreviouslat text,
opreviouslong text,
ostate int,
previouslat text,
previouslong text,
state int,
status int,
PRIMARY KEY ((imei, week, event), startevent, oevent, ostartevent)
) WITH CLUSTERING ORDER BY (startevent ASC, oevent ASC, ostartevent ASC)

然后在“ eventstats map>”字段中插入以下数据:-

eventstats = {'ExB': {start: 0, end: 0}, 'InB': {start: 6, end: 6}, 'd1': {start: 0, end: 0}, 'd10': {start: 1, end: 1}, 'd11': {start: 0, end: 0}, 'd12': {start: 1, end: 1}, 'd13': {start: 0, end: 0}, 'd14': {start: 1, end: 1}, 'd15': {start: 0, end: 0}, 'd16': {start: 1, end: 1}, 'd17': {start: 0, end: 0}, 'd18': {start: 1, end: 1}, 'd19': {start: 0, end: 0}, 'd2': {start: 1, end: 1}, 'd20': {start: 1, end: 1}, 'd3': {start: 1, end: 1}, 'd4': {start: 2, end: 2}, 'd5': {start: 0, end: 0}, 'd6': {start: 1, end: 1}, 'd7': {start: 0, end: 0}, 'd8': {start: 1, end: 1}, 'd9': {start: 0, end: 0}}

现在,我想在Elasticsearch中对eventstats字段执行如下搜索:

eventstats.ExB.start='0' 

然后返回0个文档。

那么我应该如何在elasticsearch中的“ eventstats”字段上执行搜索。

1 个答案:

答案 0 :(得分:0)

从Elassandra v6.2.3.4开始,不支持map内的UDT。

计划在将来的版本中予以支持。