问题标签 [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 无痛脚本计算 dayOfWeek 或 timeOfDay
我使用 ES 5.1.2,我试图从一个date
字段计算星期几和一天中的时间,并同时考虑时区。
我的第一个脚本是def d = doc['my_field'].date; d.addHours(10); d.getDayOfWeek();
错误消息是找不到 addHours() 方法
如果我将脚本更改为MutableDateTime d = doc['my_field'].date; d.addHours(10); d.getDayOfWeek();
错误消息变为
不addHours
调整时区,一切都很好。但是如果我尝试动态调整时区,一切都会失败。有什么帮助吗?
elasticsearch - elasticsearch script_score 自定义评分功能:如何替换缺失值?
我正在查看 elasticsearch 的文档,了解如何为自定义评分函数创建脚本,该函数使用未在此链接上查询评分的字段。
从我所见,您可以像这样构建一个脚本函数:
但我想知道doc['my_numeric_field'].value
如果缺少替换的语法是什么?
elasticsearch - ElasticSearch:从无痛脚本中的嵌套字段计算 arcDistance
我需要在 Painless 脚本中计算弧距,但在这种情况下还没有找到访问地理 API 的方法,即:
- 第一点作为参数传递给脚本 - 这意味着我只得到原始值
- 第二点是从嵌套文档中读取的——这意味着我无法使用
doc[myGeoField].value
API读取该字段
在这两种情况下,我都无法实例化一个org.elasticsearch.index.fielddata.ScriptDocValues.GeoPoints
可以让我访问该方法的.arcDistance()
方法。
我也无法使用Painlessorg.elasticsearch.common.geo.GeoUtils
中未列入白名单的课程。
在脚本中计算弧距还有其他选择吗?
注意:由于此处无法解释的原因,我必须为此用例使用脚本 - 在查询/过滤器中执行此操作不是一种选择。
elasticsearch - 如何使用 ElasticSearch 中的脚本将对象添加到数组中?
我正在尝试将一个项目添加到我的一个 Elastic Search 文档中的数组中。我可以为简单的项目(例如字符串)执行此操作,但现在无法添加对象。这是我当前的代码:
我收到以下错误:
elasticsearch - 长类型的弹性搜索无痛脚本问题
我目前正在使用 Elastic search 5.2 并尝试 使用以下 rest api执行upsert操作:
http://ip:9200/indexname/typename/id/_update
json有效负载:
}
这个 api 做了以下事情:
1.) 如果在弹性搜索中找不到索引,则使用 upsert 字段内提供的 json 创建索引。
2.) 如果索引存在,那么它通过运行文档中提供的无痛脚本来执行部分更新。
问题:
我已经为计数器创建了弹性搜索索引映射。
此更新工作正常,直到计数器值在整数范围内。(即)2,147,483,647
超出此值,它会溢出并变为负值,以防预期值为正长值(因为相应的索引映射很长)。有没有办法在使用无痛脚本时解决这个 int 溢出问题?
elasticsearch - 如何在无痛脚本 Elasticsearch 5.3 中执行此操作
我们正在尝试复制这个 ES 插件https://github.com/MLnick/elasticsearch-vector-scoring。原因是 AWS ES 不允许安装任何自定义插件。该插件只是在做点积和余弦相似度,所以我猜想在painless
脚本中复制它应该很简单。看起来groovy
脚本在 5.0 中已弃用。
这是插件的源代码。
我试图从从索引中获取一个字段开始。但我遇到了错误。
这是我的索引的形状。
我已启用delimited_payload_filter
我有一个称为@model_factor
存储向量的字段。
这是文件的形状
这是我使用脚本的方式
这是我得到的错误。
问题是如何访问索引字段以@model_factor
进行无痛脚本?
java - ElasticSearch/Painless:如何访问/汇总对象中的所有值
我一直在研究聚合和使用脚本编写脚本painless
,但我无法弄清楚如何对对象中的所有值进行迭代/求和。
例子:
我的映射看起来像
假设我的数据如下所示:
我想对 执行范围查询50.0 + 20.5 + 30.5
,或者基本上field1
以某种方式访问对象中的所有值。
聚合不允许我在字段中使用通配符。我正在查看LeafDocLookup
(内部用于无痛)的代码,我看到相关方法被禁用。
我设法编写了这样的脚本:
但这显然是次优的,并不能解决动态键的主要问题。
elasticsearch - Elasticsearch Painless 脚本按值获取嵌套字段?
我想根据嵌套字段值计算我在 elasticsearch 上的查询得分。这是我的文档的示例:
我想要的是根据经验数量和范围(去年的值更重要)过滤和排名查询。问题是:我如何才能获得过滤经验的价值?
这是我的查询的简化版本:
希望有办法解决这个问题...
在此先感谢您的帮助
elasticsearch - Elasticsearch 管道将对象的字段提取到文档的根目录
我正在寻找一种方法来提取对象的内容,例如
并将其转换为
我正在查看提供的处理器,但找不到任何有用的东西。
我最初的想法是:
- 指定一个字段,其内容我可以正则表达式匹配或以另一种方式选择
- 遍历它们
- 将它们的内容内联到新字段。
任何建议将不胜感激!
elasticsearch - ElasticSearch - 脚本 - 循环 - 无痛
\我无法在 Painless 中对子文档执行 LOOP。这只是为运行 LOOP 而创建的一个示例场景,场景是另一种场景(这种情况可能是运行过滤器,但问题是子文档中的循环)。
创建
数据
查询