前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch 集成到项目中记录(现阶段已完成)

Elasticsearch 集成到项目中记录(现阶段已完成)

作者头像
简单、
发布2018-07-17 17:49:36
7200
发布2018-07-17 17:49:36
举报

下周开始,项目中要添加Elasticsearch大数据搜索服务了。并且用kong运行整个项目。开文章,后面用来记录。

安装java JDK 下载地址

需要对应自己所需要的版本

安装 elasticsearch 下载地址

下载后进入到目录中直接运行 ./elasticsearch

路径不能有中文,否则可能会报错。会报很多奇葩的错误。
elasticsearch-run
elasticsearch-run
elasticsearch的插件
elasticsearch-head

[head-下载地址](git clone git://github.com/mobz/elasticsearch-head.git )

cd elasticsearch-head npm install npm run start

运行图
运行图
elasticsearch-kibana

kibana-下载地址

cd kibana/bin ./kibana

kibana-运行图
kibana-运行图
开启后的界面
kibana
kibana
elasticsearch-head
elasticsearch-head

django 连接elasticsearch,并取出索引下所有数据

es数据查询
es数据查询
es查询结果
es查询结果

集成到django

代码语言:javascript
复制
class ElasticSearch(mixins.UpdateModelMixin,
                    mixins.ListModelMixin,
                    generics.GenericAPIView):

    def post(self,request):

        from elasticsearch import Elasticsearch
        from elasticsearch_dsl import Search
        from acl.jsonresponse import response_redis_code

        datetime = request.POST["datetime"] # _index 后面的时间
        start_time = request.POST["start_time"] # 开始时间
        end_time = request.POST["end_time"] # 结束时间
        fields = request.POST["fields"] # 接收address地址
        total = request.POST["total"] # 页数
        size = request.POST["size"] # 一页显示内容数

        address = fields.split(',') # 将前端传来的address进行分割

        client = Elasticsearch(hosts="192.168.31.81") # 连接elasticsearch

        s = Search(using=client,index="fset_iec104_"+datetime) \
        .filter("range",TS={"gt": start_time,
        "lt": end_time})
        s = s[int(total):int(size)] # 分页
        response = s.execute()

        dicts = []
        for hit in response:
            dicts.append(hit)
        response = []
        for addr in address:
            for dict in dicts:
                try:
                    res = {
                        'device':'1',
                        'address':addr,
                        'val':dict['1_'+addr],
                        'timeStamp':dict['TS'],
                        'description':response_redis_code(int(addr)).decode('utf8')
                    }
                    # print res
                    response.append(res)
                except Exception,e:
                    pass
                
        return jsonresponse.JsonResponse(list(response),code=200)

运行结果

es查询结果-django
es查询结果-django

Tags: 大数据, elasticsearch, 搜索服务

Archives QR Code

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需要对应自己所需要的版本
  • 路径不能有中文,否则可能会报错。会报很多奇葩的错误。
  • elasticsearch的插件
  • django 连接elasticsearch,并取出索引下所有数据
  • 集成到django
  • 运行结果
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档