微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用Elasticsearch-dsl在Elasticsearch中基于字段的值和索引过滤器进行计数

如何解决如何使用Elasticsearch-dsl在Elasticsearch中基于字段的值和索引过滤器进行计数

我正在使用带有from multiprocessing.dummy import Pool as ThreadPool from queue import Queue def threadworker(tasks): while True: # try: # func,args,kargs = tasks.get(block=False) # except Empty: # break func,kargs = tasks.get() try: func(*args,**kargs) except Exception as e: print(e) finally: tasks.task_done() def wait_delay(d): print('sleeping for (%d)sec' % d) time.sleep(d) if __name__ == '__main__': tasks = Queue() for d in range(1,5): tasks.put((wait_delay,(d,),{})) threadpool = ThreadPool(processes=2) # threadpool.map_async(threadworker,[tasks]) threadpool.map(threadworker,[tasks]) # blocking... tasks.join() elasticsearch (7.9.1)python3.6。

在我的elasticsearch-dsl (7.3.0)索引中,我有一些类似以下的文件(按相关字段过滤):

logstash-2020.09.21

我可以发出{ "subtype": "webfilter","url": "https://play.google.com/",... } POST请求,并像这样获得我需要的信息:

curl

哪个会产生以下存储桶:

curl -X POST "localhost:9200/logstash-2020.09.21/_search?size=0&pretty" -H 'Content-Type: application/json' -d'{
  "aggs": {
    "urls": {
      "filter": { "term": { "subtype": "webfilter" } },"aggs": {
        "count": { "terms": { "field": "url","size": 100 } }
      }
    }
  }
}'

我想知道在使用"buckets" : [ { "key" : "https://play.google.com/","doc_count" : 30783 } ] 时如何发出等效请求,但是我很难弄清楚该怎么做。

这是我迄今为止尝试失败的结果:

elasticsearch-dsl

哪个输出

from elasticsearch import Elasticsearch
from elasticsearch_dsl import Q,A,Search

a = A("filter",Q("term",subtype="webfilter"))

client = Elasticsearch()

s = Search(using=client,index="logstash-2020.09.21")

s.aggs.bucket("urls",a).bucket("count","terms",field="url",size=100)

s.execute()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?