问题标签 [elasticsearch-dsl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
236 浏览

python - elasticsearch_dsl 过滤掉包含特定字符的字段中的数据

我有一个包含 Windows 事件日志的数据集,我正在尝试过滤掉包含特定字符 # 的 TargetUserName 字段中的值。

基本上,如果 TargetUserName 包含 # 不要聚合它。以下是我当前的代码。

任何帮助将不胜感激。谢谢你。

0 投票
1 回答
95 浏览

python-2.7 - 升级 Elasticsearch DSL

我有一个看起来像这样的查询(使用 Elasticsearch DSL v0.0.11)

我将如何使用 v2.x 编写它?什么时候F功能消失了?

以某种方式使用Q功能?

0 投票
1 回答
2441 浏览

python - Elasticsearch DSL python 查询在嵌套属性上具有过滤器和聚合

我想使用通过嵌套对象进行过滤来构建过滤的 Elasticsearch 查询,并进行聚合以获取嵌套对象列表中嵌套对象的最小值。

过滤部分有效,但我无法将它与 aggs(聚合)部分绑定。当我.aggs.bucket在过滤器之后将该部分添加到我的代码中时,它要么被忽略(在 中不可见search.to_dict()),要么给我语法错误。

任何人都可以给我一个如何将它们绑定在一起的例子吗?nested1.foo.bar我正在尝试从一个响应中获取过滤后的查询结果和计算出的最小值

示例架构:

构建查询:

基本上我需要做的是获取每个唯一 MyExample 文档的所有嵌套 nested1.foo.bar 值的最小值(它们具有唯一的 myexample_id 字段)

0 投票
2 回答
18713 浏览

python - 在 Python 中将 CSV 索引到 ElasticSearch

希望将 CSV 文件索引到 ElasticSearch,而不使用 Logstash。我正在使用elasticsearch-dsl高级库。

例如,给定一个带有标题的 CSV:

按字段索引所有数据的最佳方法是什么?最终我希望让每一行看起来像这样

0 投票
1 回答
2440 浏览

python - Python elasticsearch DSL聚合/每个文档嵌套值的度量

我正在尝试在 2 级嵌套中找到最小值(最小值)(每个文档的单独最小值)。

到目前为止,我能够进行聚合,从我的搜索结果中的所有嵌套值中计算最小值,但每个文档没有分离。

我的示例架构:

这就是我搜索和汇总的方式:

基本上我需要做的是获取每个唯一 MyExample 的所有嵌套 nested1.foo.bar 值的最小值(它们具有唯一的 myexample_id 字段)

0 投票
1 回答
614 浏览

python - 更新到 elasticsearch 2.3 后无法定位嵌套地理点

我们使用 AWS 托管的 Elasticsearch 服务,最近从 1.5 升级到了 2.3。我们使用 python 中的 elasticsearch-dsl 包来构建我们的查询并设法迁移我们的大部分查询,但是无论我尝试什么,geo_distance 都被破坏了。

映射:

使用 elasticsearch-dsl==0.0.11 的 Python 代码

库生成的查询:

我们在具有相同映射的新 2.3 上创建了一个全新的索引。

更新到 elasticsearch-dsl == 2.1.0 并尝试将过滤器转换为查询后:

这会生成以下查询:

我们得到以下异常:

我尝试将该字段引用为 'location' 、 'addresses.location' 、 'addresses' 并使用旧的嵌套查询类型。我无法确定映射在 2.3 中是否不再有效,或者我是否构建了错误的查询。

查询

生成以下错误:

我想我需要在映射中添加 lat_lon : True 才能使地理距离查询起作用,但没有一个示例具有它。

任何帮助将不胜感激,谢谢!

0 投票
1 回答
498 浏览

python - 将来自 Kibana 的 Elasticsearch 请求转换为 elasticsearch-dsl

最近从 AWS Elasticsearch Service(使用 Elasticsearch 1.5.2)迁移到 Elastic Cloud(当前使用 Elasticsearch 5.1.2)。很高兴我做到了,但随着这种变化而来的是更新版本的 Elasticsearch 和更新的 API。努力让我了解请求东西的新方式。以前,我可以或多或少地从 Kibana 的“Elasticsearch 请求正文”中复制/粘贴,调整一些东西,运行 elasticsearch.Elasticsearch.search() 并得到我所期望的。

这是我来自 Kibana 的 Elasticsearch 请求正文(为简洁起见,删除了 Kibana 通常插入的一些无关内容):

现在我想用 elasticsearch-dsl 来做,因为这似乎是推荐的方法(而不是使用 elasticsearch-py)。我如何将以上内容翻译成elasticsearch-dsl?

这是我到目前为止所拥有的:

我上面写的代码没有给我我所期望的。获取包含与“Message\ ID:2003”不匹配的内容的结果,并且它也给了我请求的 Time.ISO8601 范围之外的东西。

elasticsearch-dsl 和 ES 5.1.2 的做事方式是全新的,所以我知道我有很多东西要学。我究竟做错了什么?在此先感谢您的帮助!

0 投票
2 回答
1387 浏览

python - elasticsearch-dsl - 在 python 中聚合收集平均值

我正在尝试使用 elasticsearch-dsl 库,但不幸的是它没有很好的记录。

我有以下过滤器,它有效。

首先,我发现我需要搜索多远。

然后我用过滤器运行我的搜索

在此之后,我应该需要运行一些 aggs。我有以下但它不起作用:

它只是返回:

平均(字段='询问')

我还需要它来进行有趣的计算,而不仅仅是简单的计算。我需要问 + (spread / 2)

IE

s = s.aggs.bucket('average', 'avg', field='ask + (spread / 2')

有没有人有任何想法?

当我们在这里时,我需要将其扩展为整数类型,它目前是一个字符串。我首先使用python创建索引;我很高兴删除我的索引并重新开始,但我不知道如何在创建时在 python 中指定字段类型。

0 投票
1 回答
2392 浏览

python - 在 elasticsearch_dsl Python 客户端中访问 inner_hits 的 KeyError

我在使用 Python elasticsearch_dsl 客户端访问 inner_hits 数据时遇到了问题。任何在 meta.inner_hits 中使用嵌入的 Response 对象的尝试都会在容器对象中的“_type”上产生 KeyError。以下代码是完全独立的,因此任何人都应该能够使用 Python 2.7 和 elasticsearch_dsl 5.0.0 重现相同的结果:

这是 API 中的错误吗?

0 投票
3 回答
2443 浏览

python - ES DSL 中的聚合过滤器

我有以下聚合过滤器:

“aggs”:{“agg_name”:{“filter”:{“exists”:{“field”:“filed_name”}}}}}}

但我想用elasticsearch-dsl把它写得更干净。这是我能做的最好的:

aggs.bucket('agg_name', {"filter": {"exists": {"field": "field_name"}}})

但我知道有一种更清洁的方法。一些失败的尝试:

  • aggs.bucket('agg_name', A('filter', type='exists', field='field_name'))
  • aggs.bucket('agg_name', A('filter','exists', field='field_name'))
  • aggs.bucket('agg_name', A().filter('exists', field='field_name'))
  • aggs.bucket('agg_name').filter('exists', field='field_name')

我目前无法从文档中获取正确的信息。是否可以写得更像 DSL?