【ES】代码例子

#!/usr/bin/env python
#coding=utf-8

from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search

class ES(object):
    def __init__(self):
        self.es = Elasticsearch(hosts="localhost:9200",timeout=60)

    def get_es_data(self, query = ""):
        resp = self.es.search(index="test", body=query, scroll="1m",size=10000)
        scroll_id = resp[‘_scroll_id‘]
        resp_docs = resp["hits"]["hits"]
        total = resp[‘hits‘][‘total‘]
        print total
        count = len(resp_docs)
        datas = resp_docs
        while len(resp_docs) > 0:
            scroll_id = resp[‘_scroll_id‘]
            resp = self.es.scroll(scroll_id=scroll_id, scroll="1m")
            resp_docs = resp["hits"]["hits"]
            datas.extend(resp_docs)
            count += len(resp_docs)
            if count >= total:
                break
        return datas

    def get_ip_data(self, start_time, end_time, ip):
        query = {"query":
                    { "bool":{
                        "filter":{"range":{"timestamp":{"gte":start_time, "lt":end_time}}},
                        "must":{"match_phrase":{"src_ip": ip}}
                        }
                    }
                }
        data = self.get_es_data(query)
        print len(data)
        data = [d["_source"] for d in data]
        print len(data)
        print data[0:5]
        return data

    def get_ips(self, start_time, end_time):
        query = {
        "query":{
            "bool":{
                "filter":{"range":{"timestamp":{"gte":start_time, "lt":end_time}}},
                "must":{"exists":{"field":"src_ip"}}
                }
            }
        }
        data = self.get_es_data(query)
        ips = [d["_source"]["src_ip"] for d in data]
        print len(ips)
        ips = list(set(ips))
        print len(ips)
        print ips
        return ips

if __name__ == "__main__":
    es_obj = ES()
    #es_obj.get_ips("2017-06-01T00:00:00", "2017-06-01T01:00:00")
    es_obj.get_ip_data("2016-11-14T00:00:00", "2016-11-15T00:00:00","192.168.0.45")
时间: 2025-01-09 03:59:58

【ES】代码例子的相关文章

30 个 php 操作 redis 常用方法代码例子

这篇文章主要介绍了 30 个 php 操作 redis 常用方法代码例子 , 本文其实不止 30 个方法 , 可以操作 string 类型. list 类型和 set 类型的数据 , 需要的朋友可以参考下redis 的操作很多的,以前看到一个比较全的博客,但是现在找不到了.查个东西搜半天,下面整理一下php 处理 redis 的例子,个人觉得常用一些例子.下面的例子都是基于 php-redis 这个扩展的.1 , connect描述:实例连接到一个 Redis.参数: host: string

java swing高仿酷我音乐界面代码例子下载

原文:java swing高仿酷我音乐界面代码例子下载 代码下载地址:http://www.zuidaima.com/share/1550463245044736.htm 高仿酷我音乐界面尽情欣赏 java swing高仿酷我音乐界面代码例子下载,布布扣,bubuko.com

Java泛型代码例子

Java泛型代码例子 一篇代码胜过千言万语 package com.apkkids.javalanguage; import java.util.ArrayList; import java.util.List; /** * @author wxb * Java泛型例子 */ public class GenericTest { //泛型接口 public interface MyCollection<T>{ public T get(int position ); public T add(

java swing颜色选择器代码例子下载

原文:java swing颜色选择器代码例子下载 源代码下载地址:http://www.zuidaima.com/share/1550463730420736.htm 矿泉水2013-09-13 17:17:13 java swing颜色选择器代码例子下载

jeecg 主-附表生成代码例子

jeecg 主-附表生成代码例子 - CSDN博客https://blog.csdn.net/u010411264/article/details/51243277 JEECG Online Coding开发手册v3.6 - jeecg team - jeecghttp://wiki.jeecg.org/pages/viewpage.action?pageId=5439563 jeecg快速开发平台 数据库建表 - CSDN博客https://blog.csdn.net/Ywaken/artic

30个php操作redis常用方法代码例子

redis的操作很多的,以前看到一个比较全的博客,但是现在找不到了.查个东西搜半天,下面整理一下php处理redis的例子,个人觉得常用一些例子.下面的例子都是基于php-redis这个扩展的. 1,connect 描述:实例连接到一个Redis. 参数:host: string,port: int 返回值:BOOL 成功返回:TRUE;失败返回:FALSE 示例: 复制代码 代码如下: <?php $redis = new redis(); $result = $redis->connect

windows 系统在vs2010 中配置libxml2,及读取xml代码例子

1.先下载libxml2 (下载地址 http://download.csdn.net/detail/luoww1/8095273),里面包括了三个文件夹分别:zlib-1.2.3.win32 和iconv-1.9.2.win32 和libxml2-2.7.6.win32 2.将下载内容中的iconv.dll 和zlib1.dll 拷贝到C盘下的Windows文件夹中 3.在项目中新建include 文件夹,解压的到的libxml2和iconv中的include文件夹中的内容拷入到该includ

Android中Fragment和Activity之间的互操作代码例子

摘要 本文介绍了Android中一个Activity中有多个Fragment的情况下,Fragment之间如何通过Activity进行互操作. 源代码 源代码地址为:http://download.csdn.net/detail/logicteamleader/8931199 源代码使用ADT编写,ADT版本为2014,Android版本为android-22. 技术要点 1.在Activity中的多个Fragment之间要互操作,一定要通过此Activity,不能直接通信: 2.在Activi

读xml生成代码例子

读xml生成相应的  lua解析协议代码: #include <iostream> #include "tinyxml2.h" #include <fstream> #include <string> using namespace tinyxml2; using namespace std; std::ofstream file("readProto.lua",std::ios::ate|std::ios::binary); v