我已经成功地将python与elasticsearch ()和复合聚合一起使用了一段时间,但遇到了一个我无法解决的问题。我正在查询的数据是多个组织的资产数据,每个资产由一行组成。每行包含每个资产的两个日期(scan_date和时间戳),我需要搜索结果给出每个组织的最大(时间戳- scan_date),即最古老的"scan_age“。在SQL方面:
SELECT organization, MAX(timestamp - scan_date) as oldest_scan_age
FROM database
GROUP BY organization
elasticsearch库包含用于
可以使用Python的elasticsearch-dsl库中的scan()方法进行更新吗? 例如: search = Search(index=INDEX).query(query).params(request_timeout=6000)
print('Scanning Query and updating.')
for hit in search.scan():
_id = hit.meta.id
# sql query to get the record from th database
record = get_record_by_id(_i
我使用的是带有Ubuntu16.04 Xenial和Python3.5.2虚拟环境的坞容器。每当我试图初始化服务器uWSGI时,我都会得到以下Python:
File "/env/lib/python3.5/site-packages/elasticsearch_dsl/__init__.py", line 5, in <module>
from .search import Search
File "/env/lib/python3.5/site-packages/elasticsearch_dsl/search.py", line
我有一个很大的Windows事件日志集,我试图从单个事件ID的单个列中查找用户的唯一列表。这会运行,但需要非常长的时间。您将如何使用python Elasticsearch_dsl和Elasticsearch-py来完成此任务?
es = Elasticsearch([localhostmines], timeout=30)
s = Search(using=es, index="logindex-*").filter('term', EventID="4624")
users = set([])
for hit
在芹菜和django的其他项目中,遇到了一个没有发生过的奇怪问题。
我使用一个JSON,迭代它,并将它放入django模型,但是不能创建模型。
tasks.py
from __future__ import absolute_import, unicode_literals
from myapp.celery import app
from django.apps import apps
from datetime import datetime
from zeep import Client, Settings, helpers
from zeep.wsse.username imp
因此,我使用elasticsearch_dsl根据本地主机上的索引搜索和查询数据。
from pprint import pprint
es = elasticsearch.Elasticsearch('http://localhost:9200')
s = elasticsearch_dsl.Search(using=es, index='your_index_name')
result1 = s.execute() #using the execute method
result2 = s.scan() # using the scan method
p
我正在编写一些代码来查询Elasticsearch中的数据。我们有大量的数据,所以我使用了一个扫描功能,并搜索一个特定的索引。我们按天对elasticsearch进行索引,例如today = index_2019_04_15和yesterday = index_2019_04_14。有没有办法只查询前几天的索引? 其次,在执行_all,然后将查询限制为2019-04-14方面,我会看到性能受到很大影响吗?如果没有,那么我可以只做前一天的查询。 下面是我的代码: import pandas as pd
from elasticsearch_dsl import Search
from elas
我在我们的一个项目中使用django-elasticsearch-dsl,在AWS Elasticsearch中创建了一个集群后,我开始看到这个错误:Root certificates are missing for certificate validation. Either pass them in using the ca_certs parameter or install certifi to use it automatically.。在这个链接中,已经提出了一些解决方案来解决https://elasticsearch-py.readthedocs.io的问题,但这不适用于使用el
我试图在python中使用elasticsearch dsl库,但我似乎得到了某种截断的结果/元数据,而不是文档/响应对象。已清理的查询如下:
from elasticsearch_dsl import Search, Q, F
from elasticsearch_dsl.query import MultiMatch
from elasticsearch import Elasticsearch
import requests
import json
client = Elasticsearch("")
s = Search().using(client).quer
我想使用elasticsearch-DSL0.0.9librairy,但是他们的例子已经过时了。我安装了最新的版本,Integer和Boolean类型不再存在。
因此,他们的榜样是行不通的。
from datetime import datetime
#There is no 'Integer' in elasticsearch_dsl
from elasticsearch_dsl import DocType, String, Date, Integer
from elasticsearch_dsl.connections import connections
# Defi
在这里,我添加了我的代码:
from datetime import datetime
from elasticsearch_dsl import Document, Date, Integer, Keyword, Text
from elasticsearch_dsl.connections import connections
# Define a default Elasticsearch client
connections.create_connection(hosts=['localhost'])
class Article(Document):
tit
如何将CIDR标记IP地址的ip_range字段类型与django-elasticsearch-dsl一起使用 https://www.elastic.co/guide/en/elasticsearch/reference/current/range.html#ip-range 我尝试创建一个子类,但结果是字段映射为"type":"text“ ...
from django_elasticsearch_dsl.fields import DEDField
from elasticsearch_dsl.field import IpRange
...
class Ip
我使用ElasticSearch-DSL和我的Django应用程序来搜索产品。我能够获取结果并将它们放入我的模板(search.html)中,并且它正在按预期工作。
我做了一些研究,但不知道如何添加分面搜索到我的模板和如何实现分面搜索。
我的documents.py
from django_elasticsearch_dsl import Document
from django_elasticsearch_dsl.registries import registry
from products.models import Products
from elasticsearch_dsl imp
我有如下代码
from elasticsearch_dsl.connections import connections
from elasticsearch_dsl import DocType, String, Boolean
class BaseDoc(DocType):
id = String(required=True, index='not_analyzed')
name = String(required=True)
deleted = Boolean(required=True, null_value=True)
class
我有一个django应用程序,可以将模型推入elasticsearch。保存后,我有一个post信号要更新,但是我想编写一个批处理命令,它正在更新所有文档。
在此过程中,我希望删除已过时的文档(例如,在数据库中设置非活动、被删除等)。
我一开始是这样的:
更新所有文档并存储更新/创建的ids。
创建一个巨大的排除查询
删除所有匹配的文档
就像这样:
for i in updated_ids:
q = Q('match', **{'id': i})
f = f | q if f else q
queryset = dt.sear
在尝试运行时,我会得到这个导入错误。
from elasticsearch_dsl import Search, A
全回溯
ImportError: cannot import name 'Mapping' from 'elasticsearch.compat' (C:\Users\SANA\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\elasticsearch\
我正在使用django- elasticsearch -dsl库,这是一个与elasticsearch交互的高级客户端。 这是我的Document.py文件 from django_elasticsearch_dsl import Document
from django_elasticsearch_dsl.registries import registry
from .models import Clothes
@registry.register_document
class ClothesDocument(Document):
class Index:
#
我刚接触Elasticsearch和python的elasticsearch-dsl,我真的不明白为什么我的过滤器不返回任何结果:
In [1]: from elasticsearch import Elasticsearch
...: from elasticsearch_dsl import Search
...:
...: search = Search(using=Elasticsearch())
In [2]: search.execute()
我正在尝试使用Elasticsearch,并使用Django Python包对一些elasticsearch-dsl数据进行索引。 我已经创建了一个相对基本的测试search.py,但在尝试索引任何数据时收到一个连接错误。 from elasticsearch_dsl.connections import connections
from elasticsearch_dsl import Document, Text
from elasticsearch.helpers import bulk
from elasticsearch import Elasticsearch
from . i