数据查询

ES查询用例

单个index

1、全文检索

多字段查询


2、地图搜索

地图字段查询,依赖数据中包含带有geo_location的字段。


3、聚合

大类、小类、属性三级聚合


ES数据建模

1、如何同时存储来自多个数据源的数据(包括用户修改吗?),无损保存:

可以在多个级别支持: index,type,id,source,properties

a)index_source_a/people,index-source-b/people

b)index/people_source_a,index/people_source_b,

c)index/people/id1-source-a, index/peopleid1-source-b/

d)

index/people

id1: {

source-a:{},

source-b:{}

}

e)

index/people

id1: {

name: {

source-a:{},

source-b:{}

},

address: {

    source-a:{}

}

}

1)在source和properties级别支持对于消费(如分页)比较友好。其它级别不容易支持分页操作。

2)在source和properties级别支持对于写入/更新/删除,不是特别友好。每次写入,需要做读取、合并、覆盖的操作。

3)用户修改可以作为一种数据源,否则如何知道用户更新的是哪个来源的数据?


2、如何同时存储来自多个数据源的数据,高效写入:

每次写入,需要做 读取、合并、覆盖的操作。


问题

1、如何存储时间序列数据?time-based  data

推荐阅读更多精彩内容