问题标签 [elasticsearch-painless]
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.
elasticsearch - elasticsearch doc['...'] 数组和顺序
我需要从脚本访问存储在数组中的文档值。数组中项目的顺序很重要。
使用 doc['...'] 检索数组会混淆顺序:-(
假设一个像这样的简单文档
使用此查询检索:
将以反向(排序)顺序返回数组:[1,2,3,4,5] 有没有办法防止这种行为?
我不能求助于使用 _source,因为我需要在不支持 _source 的“has_child”查询中使用它。
有任何想法吗?
elasticsearch - 从字段数组中提取文本
称为“资源”的字段之一具有以下 2 个内部文档。
我需要拆分 ARN 字段并获取它的最后一部分。即“ reports_201706.schema ”最好使用脚本字段。
我试过的:
1)我检查了文件列表,发现只有2个条目resources.accountId和resources.type
2)我尝试使用日期时间字段,它在脚本文件选项(表达式)中正常工作。
3)但同样不适用于其他文本字段,例如
收到此错误:
这意味着我需要更改映射。有没有其他方法可以从对象中的嵌套数组中提取文本?
更新:
请在此处访问示例 kibana...
https://search-accountact-phhofxr23bjev4uscghwda4y7m.us-east-1.es.amazonaws.com/_plugin/kibana/
搜索“ebs_attach.png”,然后检查资源字段。您将看到 2 个这样的嵌套数组...
我需要拆分 ARN 字段并提取最后一部分,即“ebs_attach.png”
如果我可以以某种方式将其显示为脚本字段,那么我可以在发现选项卡上并排看到存储桶名称和文件名。
更新 2
换句话说,我正在尝试将此图像中显示的文本提取为发现选项卡上的新字段。
elasticsearch - ElasticSearch/Painless:迭代时如何跳过一个项目?
我有一个迭代列表的 for 循环。如果列表包含某个值,例如“5”,我希望循环跳过该值。但是 Painless 似乎决定不允许我使用空的 if 块或使用 continue 语句。我怎样才能做到这一点?
elasticsearch - Elasticsearch 无痛脚本命令数组项
我需要有关在 elasticsearch 中获取具有索引([0] 例如)的数组项的帮助。无论是无痛或无脚本的行为。
这是我的小测试映射、文档和结果;
我索引了一份这样的文件;
当我使用无痛脚本获得“道具”值时,道具的值会按顺序获取。我不想要这个,我该如何解决?
结果是;
sorting - 无痛脚本 - 将字符串转换为 def
我正在尝试获取字符串的编号。我正在使用正则表达式模式执行此操作。当我得到结果时,我得到类似“1”、“10”、“2”的东西。我想对它进行排序,所以我需要在左边添加零才能自然地对它们进行排序。
我的脚本在这里:
当我尝试执行命令时,出现以下错误:
如何在不使用 String.Formatter 的情况下添加零?
我在哪里尝试从 STRING 转换为 DEF?
c# - 如何在 Elasticsearch 上使用 NEST 进行查询中的脚本字段?
我有一个具有坐标字段的 POCO,并且使用 NEST 进行的映射和地理距离搜索都按预期工作。但是,我尝试对 NEST 执行的操作也是返回与 GeoDistance 查询中指定的点的距离,作为搜索结果的一部分。到目前为止,我的研究表明有两种方法可以做到这一点:
- 请求对位置进行排序
- 创建一个脚本字段作为内联运行距离计算的查询的一部分
我决定使用选项 2,下面是一些代码的样子:
和查询本身:
虽然直接针对 elasticsearch 运行此查询似乎很好,但当我这样做 NEST 时,我遇到了一些问题:
- 我无法访问我在 POCO 对象中定义的“距离”脚本字段,除非我将其添加到定义中
- 如果我为 User POCO 创建一个子类,ElasticSearch 不会反序列化父类中定义的字段(这意味着我只得到 Distance 脚本字段,而不是 ID 或 Location 字段,并且 Documents 数组对象都是 Null)
- 我试图在我用于映射的实际 POCO 和搜索结果对象之间保持分离,但我不知道如何标记属性/字段,以便 NEST 不会映射它,但会反序列化结果将脚本字段添加到属性中
我的问题是:在 NEST 中访问脚本字段的推荐方法是什么?我必须完全放弃自动映射吗?或者即使我不是特别想对结果进行排序,我也应该选择排序选项?
elasticsearch - Elasticsearch,为什么添加元素总是为空
我有一个 Elasticsearch-DB 并想将元素(字符串)添加到数组中。在这里讨论https://discuss.elastic.co/t/append-to-existing-field/16423/2我建立了一个玩具模型。我初始化:
并使用更新数组
不幸的是,更新的结果总是“null”而不是“c”:
我究竟做错了什么?
elasticsearch - 通过查询API在elasticsearch更新中选择带有参数的文档字段
弹性搜索版本 = 5.5
我继承了一些代码,这些代码通过查询 API的更新将任意文档字段更新为任意值,如下所示:
由于每分钟最大编译次数断路器,这有时会导致查询失败。
部分更新适用于这种情况,但据我所知,部分更新仅在标准更新 API 中受支持,而不是通过查询 API 进行更新:
至少,作为一个 ES 新手,我认为这就是那个错误的含义。doc
在查询 API 文档的更新中也没有提及。
假设我是对的,部分更新不起作用,按照脚本指南中的建议参数化脚本似乎是下一步,但似乎没有任何方法可以访问参数指定的源字段:
尝试通过doc-values访问该字段似乎也不起作用:
有什么方法可以修复这个脚本还是需要更广泛的重构?
elasticsearch - elasticsearch-painless - 操作日期
我正在尝试使用 elasticsearch 的脚本语言来操作日期painless
。具体来说,我试图增加 4 小时,即 14,400 秒。
这抛出Cannot apply [+] operation to types [org.elasticsearch.index.fielddata.ScriptDocValues.Longs] and [java.lang.Integer].
谢谢
elasticsearch - 如何对弹性搜索聚合桶数据应用数学运算
我正在使用弹性搜索 5.5.1。我的要求是在以下数据集上应用以下公式:(doc_count*100/10):
我应该能够为每个存储桶项目找到解决方案。我不想使用 Java SDK 来解决这个问题,因为要求只使用弹性搜索 REST API。