问题标签 [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.
python - Elasticsearch DSL 多级父查询
我将 Elastisearch 5.x 和 Python 与 elasticsearch-dsl 5.2.0 一起使用
我需要从孩子开始查询,获取几个字段,将其与定义的父亲和祖父匹配(我还需要从祖父那里得到一个字段值)
问题是在我的搜索结果中,Grandfather inner_hits 是空的。我真的可以在这里使用小费。
django - 通过整数字段在 Elasticsearch_dsl 中进行范围查询
我用过elasticsearch-dsl==5.2.0
,elasticsearch==5.3.0
和Django==1.8.15
。
Django模型:
文档类型类:
分面搜索类:
当我需要使用 搜索所有项目时price == 5.0
,我会执行以下操作:
问题:
如何搜索价格范围内的所有项目: 1.0 < price <= 5.0 ?
python - 使用弹性搜索获取日志文件
信息:
Filebeat 安装在机器上,从那里读取日志并将其发送到弹性搜索服务器。在测试机上,使用elasticsearch-dsl
,我正在读取日志并将其写入文件。
问题:
来自机器的原始日志:
搜索并将日志写入输出文件后:
如何保持日志序列完整或原样?
代码 :
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 的帖子对我开始很有帮助)。将不胜感激任何指针。
python - elasticsearch-dsl-py 按 Text() 字段排序
我的方法有问题.sort()
。例如,我有 Text() 字段的索引:
当我尝试使用 sort 执行搜索查询时,出现错误:
elasticsearch.exceptions.RequestError: TransportError(400, 'search_phase_execution_exception', 'Fielddata 在默认情况下在文本字段上被禁用。在 [title] 上设置 fielddata=true 以便通过反转倒排索引将字段数据加载到内存中。请注意,这可以但是使用大量内存。')
在这种情况下,如何title
在不设置的情况下正确按字段排序fieldata=true
?
python - elasticsearch-dsl 搜索仅在调试模式下工作
我在我的项目中使用 Python 中的 elasticsearch-dsl 包。我有一个非常简单的搜索查询,如下所示:
如果我在调试模式下执行它可以正常工作,但是当我从控制台运行代码时,我总是得到 0 次点击。我不知道为什么会发生这种情况,我已经花了半天时间试图找到解决方案。有任何想法吗?
elasticsearch - 在 Elasticsearch 与父子关系中使用嵌套映射的优缺点是什么
目前在我的 ES 文档结构中,有一个“对象”类型的字段。这是一个 json 对象,里面最多可以有 3000 个字段。问题是有时我的 ES 会因为文档太大而耗尽内存。所以我希望改变我的文档结构。
我正在查看的两个结构是 - 嵌套映射和父子关系。两种结构都满足我的搜索要求。正在考虑的要点:
- 我读到嵌套查询比子查询快得多。
- 嵌套映射也将嵌套字段保存为单独的文档。
我面临的两点困惑:
嵌套索引如何工作?ES 是一次性获取整个文档并立即对其进行完整分析,还是对嵌套文档的请求是单独的。因为在第一种情况下,ES 可能会再次耗尽内存。
当我们说父子查询较慢时,我们的意思是多慢?
寻找输入。
elasticsearch - 在弹性搜索索引中重命名文档类型
我使用elasticsearch-py将由 Django 模型表示的数百万条记录从 PostgreSQL 移动到 Elasticsearch。我将模型的名称用于 doctype(在 CamelCase 中)。
然后我切换到Elasticsearch DSL并注意到默认情况下它会创建带有下划线 (snake_case) 的小写名称的文档类型。
我不想doc_type
在我的文档元中重新定义,所以我要在 Elasticsearch 中重命名它。最快的方法是什么?
elasticsearch-dsl - elasticsearch_dsl:在聚合中生成多个桶
我想生成这个:
即我想要客户端下的两个桶(num_servers)和(server_list)。
我正在尝试下面的代码,它出错了:
我认为我缺少正确的语法。感谢一些指导。
python - 在 elasticsearch-dsl-py 中使用变量作为过滤词键
使用 elasticsearch-dsl python api 时,有没有办法将变量作为键传递给 filter 。请查看下面的代码。
在这里,名为'key_varialble_name'的变量具有分配为'Key2'的值。
但是当在过滤器中使用时,该值不会被替换,因此术语键包含变量名称(即'key_varialble_name')而不是变量值(即'Key2')。
我对python没有太多了解。
任何人都可以让我知道是否有将变量值作为键传递给我吗?