关于elasticsearch 查询数据问题
项目中用到es,es中的数据是通过logstash读取日志进的,发现有个查询功能不知道如何实现,比如我的es中有个索引表叫myindex,里面有2个字段:colm_1和c...
项目中用到es,es中的数据是通过logstash读取日志进的,发现有个查询功能不知道如何实现,比如我的es中有个索引表叫myindex,里面有2个字段:colm_1和colm_2,里面数据如下所示:
colm_1 colm_2
a 1
b 2
c 3
d
e
a
b
c
d
e
f
a
我想统计colm_2中能关联到其值的colm_1的个数,比如上述表中,前三行可以说是一个colm_1和colm_2的关系对照表,后面的数据需要依据这个关系进行统计,最终统计的结果应该是:
colm_2 count
1 3
2 2
3 2
上述统计该如何书写呀?请各位大神帮忙。如果有es-sql语句的话最好,没的话用原生语句也行。 展开
colm_1 colm_2
a 1
b 2
c 3
d
e
a
b
c
d
e
f
a
我想统计colm_2中能关联到其值的colm_1的个数,比如上述表中,前三行可以说是一个colm_1和colm_2的关系对照表,后面的数据需要依据这个关系进行统计,最终统计的结果应该是:
colm_2 count
1 3
2 2
3 2
上述统计该如何书写呀?请各位大神帮忙。如果有es-sql语句的话最好,没的话用原生语句也行。 展开
展开全部
首先,为什么要使用Elasticsearch?最开始的时候,我们的项目仅仅使用MySQL进行简单的搜索,然后一个不能索引的like语句,直接拉低MySQL的性能。后来,我们曾考虑过sphinx,并且sphinx也在之前的项目中成功实施过,但想想现在的数据量级,多台MySQL,以及搜索服务本身HA,还有后续扩容的问题,我们觉得sphinx并不是一个最优的选择。于是自然将目光放到了Elasticsearch上面。
根据官网自己的介绍,Elasticsearch是一个分布式搜索服务,提供Restful API,底层基于Lucene,采用多shard的方式保证数据安全,并且提供自动resharding的功能,加之github等大型的站点也采用 Elasticsearch作为其搜索服务,我们决定在项目中使用Elasticsearch。
对于Elasticsearch,如果要在项目中使用,需要解决如下问题:
索引,对于需要搜索的数据,如何建立合适的索引,还需要根据特定的语言使用不同的analyzer等。
搜索,Elasticsearch提供了非常强大的搜索功能,如何写出高效的搜索语句?
数据源,我们所有的数据是存放到MySQL的,MySQL是唯一数据源,如何将MySQL的数据导入到Elasticsearch?
对于1和2,因为我们的数据都是从MySQL生成,index的field是固定的,主要做的工作就是根据业务场景设计好对应的mapping以及search语句就可以了,当然实际不可能这么简单,需要我们不断的调优。
而对于3,则是需要一个工具将MySQL的数据导入Elasticsearch,因为我们对搜索实时性要求很高,所以需要将MySQL的增量数据实时导入,笔者唯一能想到的就是通过row based binlog来完成。而近段时间的工作,也就是实现一个MySQL增量同步到Elasticsearch的服务。
根据官网自己的介绍,Elasticsearch是一个分布式搜索服务,提供Restful API,底层基于Lucene,采用多shard的方式保证数据安全,并且提供自动resharding的功能,加之github等大型的站点也采用 Elasticsearch作为其搜索服务,我们决定在项目中使用Elasticsearch。
对于Elasticsearch,如果要在项目中使用,需要解决如下问题:
索引,对于需要搜索的数据,如何建立合适的索引,还需要根据特定的语言使用不同的analyzer等。
搜索,Elasticsearch提供了非常强大的搜索功能,如何写出高效的搜索语句?
数据源,我们所有的数据是存放到MySQL的,MySQL是唯一数据源,如何将MySQL的数据导入到Elasticsearch?
对于1和2,因为我们的数据都是从MySQL生成,index的field是固定的,主要做的工作就是根据业务场景设计好对应的mapping以及search语句就可以了,当然实际不可能这么简单,需要我们不断的调优。
而对于3,则是需要一个工具将MySQL的数据导入Elasticsearch,因为我们对搜索实时性要求很高,所以需要将MySQL的增量数据实时导入,笔者唯一能想到的就是通过row based binlog来完成。而近段时间的工作,也就是实现一个MySQL增量同步到Elasticsearch的服务。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询