问题标签 [elasticsearch-dsl-py]

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 回答
373 浏览

python - Elasticsearch DSL 多级父查询

我将 Elastisearch 5.x 和 Python 与 elasticsearch-dsl 5.2.0 一起使用

我需要从孩子开始查询,获取几个字段,将其与定义的父亲和祖父匹配(我还需要从祖父那里得到一个字段值)

问题是在我的搜索结果中,Grandfather inner_hits 是空的。我真的可以在这里使用小费。

0 投票
1 回答
4811 浏览

django - 通过整数字段在 Elasticsearch_dsl 中进行范围查询

我用过elasticsearch-dsl==5.2.0elasticsearch==5.3.0Django==1.8.15

Django模型

文档类型类

分面搜索类

当我需要使用 搜索所有项目时price == 5.0,我会执行以下操作:

问题

如何搜索价格范围内的所有项目: 1.0 < price <= 5.0 ?

0 投票
1 回答
815 浏览

python - 使用弹性搜索获取日志文件

信息:

Filebeat 安装在机器上,从那里读取日志并将其发送到弹性搜索服务器。在测试机上,使用elasticsearch-dsl,我正在读取日志并将其写入文件。

问题:

来自机器的原始日志:

搜索并将日志写入输出文件后:

如何保持日志序列完整或原样?

代码 :

0 投票
1 回答
891 浏览

django - ElasticSearch - python 中完成建议器的批量索引

我正在尝试添加一个完成建议器,以便为我的 Django 应用程序中的搜索字段启用按输入搜索功能(使用 Elastic Search 5.2.x 和 elasticseach-dsl)。在尝试了很长时间之后,我还无法弄清楚如何对建议者进行批量索引。这是我的代码:

批量索引如下:

并在models.py中定义了一个索引方法:

根据 ES文档,建议像任何其他字段一样被编入索引。因此,我可以name_suggest =在我的代码中的上述语句中添加一些术语,这些术语在搜索时将匹配相应的字段。但我的问题是如何处理大量记录?我猜想 ES 会有一种标准的方式来自动提出一些可以用作建议的术语。例如:使用短语中的每个单词作为术语。我可以自己想出类似的东西(通过将每个短语分解成单词),但我自己这样做似乎违反直觉,因为我猜已经有一种默认方式,用户可以在需要时进一步调整. 但是在搜索了一段时间后,在 SO/blogs/ES docs/elasticsearch-dsl docs 上找不到类似的东西。(这个Adam Wattis 的帖子对我开始很有帮助)。将不胜感激任何指针。

0 投票
1 回答
3257 浏览

python - elasticsearch-dsl-py 按 Text() 字段排序

我的方法有问题.sort()。例如,我有 Text() 字段的索引:

当我尝试使用 sort 执行搜索查询时,出现错误:

elasticsearch.exceptions.RequestError: TransportError(400, 'search_phase_execution_exception', 'Fielddata 在默认情况下在文本字段上被禁用。在 [title] 上设置 fielddata=true 以便通过反转倒排索引将字段数据加载到内存中。请注意,这可以但是使用大量内存。')

在这种情况下,如何title在不设置的情况下正确按字段排序fieldata=true

0 投票
2 回答
312 浏览

python - elasticsearch-dsl 搜索仅在调试模式下工作

我在我的项目中使用 Python 中的 elasticsearch-dsl 包。我有一个非常简单的搜索查询,如下所示:


如果我在调试模式下执行它可以正常工作,但是当我从控制台运行代码时,我总是得到 0 次点击。我不知道为什么会发生这种情况,我已经花了半天时间试图找到解决方案。有任何想法吗?

0 投票
3 回答
2097 浏览

elasticsearch - 在 Elasticsearch 与父子关系中使用嵌套映射的优缺点是什么

目前在我的 ES 文档结构中,有一个“对象”类型的字段。这是一个 json 对象,里面最多可以有 3000 个字段。问题是有时我的 ES 会因为文档太大而耗尽内存。所以我希望改变我的文档结构。

我正在查看的两个结构是 - 嵌套映射和父子关系。两种结构都满足我的搜索要求。正在考虑的要点:

  1. 我读到嵌套查询比子查询快得多。
  2. 嵌套映射也将嵌套字段保存为单独的文档。

我面临的两点困惑:

  1. 嵌套索引如何工作?ES 是一次性获取整个文档并立即对其进行完整分析,还是对嵌套文档的请求是单独的。因为在第一种情况下,ES 可能会再次耗尽内存。

  2. 当我们说父子查询较慢时,我们的意思是多慢?

寻找输入。

0 投票
1 回答
260 浏览

elasticsearch - 在弹性搜索索引中重命名文档类型

我使用elasticsearch-py将由 Django 模型表示的数百万条记录从 PostgreSQL 移动到 Elasticsearch。我将模型的名称用于 doctype(在 CamelCase 中)。

然后我切换到Elasticsearch DSL并注意到默认情况下它会创建带有下划线 (snake_case) 的小写名称的文档类型。

我不想doc_type在我的文档元中重新定义,所以我要在 Elasticsearch 中重命名它。最快的方法是什么?

0 投票
2 回答
2341 浏览

elasticsearch-dsl - elasticsearch_dsl:在聚合中生成多个桶

我想生成这个:

即我想要客户端下的两个桶(num_servers)和(server_list)。

我正在尝试下面的代码,它出错了:

我认为我缺少正确的语法。感谢一些指导。

0 投票
2 回答
1966 浏览

python - 在 elasticsearch-dsl-py 中使用变量作为过滤词键

使用 elasticsearch-dsl python api 时,有没有办法将变量作为键传递给 filter 。请查看下面的代码。

在这里,名为'key_varialble_name'的变量具有分配为'Key2'的值。

但是当在过滤器中使用时,该值不会被替换,因此术语键包含变量名称(即'key_varialble_name')而不是变量值(即'Key2')。

我对python没有太多了解。

任何人都可以让我知道是否有将变量值作为键传递给我吗?