{
"title": "Mr",
"first_name": "Barry",
"last_name": "White",
"experiences": [
{
"name": "parachute",
"values": {
"last_year": 4,
"older": 12
}
},
{
"name": "base jump",
"values": {
"last_year": 2,
"older": 1
}
}
]
}
以下是我的查询的简化版本:
{
"query" :{
"nested": {
"path": "experiences",
"query":{
"function_score" : {
"functions": [
{
"filter": {"term": { "experiences.name": "parachute"} },
"script_score" : {
"script" : {
"lang": "painless",
"inline": "_score * doc['experiences.values.older'].value" //Here I want to get the "older" value of "parachute": 12
}
}
}
]
}
}
}
}
}
希望有办法解决这个...
提前感谢你的帮助
我终于设法解决了这个问题,这要归功于官方elasticsearch IRC频道的一些帮助。我不得不稍微改变一下文档映射:
就这样了。下面是最后一个查询:
{
"query" :{
"nested": {
"path": "experiences",
"query":{
"function_score" : {
"query":{
"term": { "experiences.name": "parachute"}
},
"functions": [
{
"field_value_factor": {
"field": "experiences.older",
"factor": 1,
"missing": 1
}
},{
"field_value_factor": {
"field": "experiences.last_year",
"factor": 2,
"missing": 1
}
}
],
"score_mode": "sum"
}
}
}
}
}
问题内容: 我刚开始使用ES,但仍然喜欢交易的技巧!!!我需要替换/覆盖嵌套对象类型的字段之一。这是示例文档: 映射以上文档: 我需要更新给定ref_name的计数字段值。例如,在上述情况下,如果 ref_name 是“ test1 ”,我希望新 计数 为 500 。我想出了下面的简单 脚本 来更改 计 数值,它可以正常执行而没有任何错误,但是我看不到该值正在更新。 以下是响应: 但是,当我看到该
我想从特定字段中搜索关键字并返回文档。在这些文档之上,我希望遍历每个嵌套对象,并从选定文档的同一特定字段中再次搜索关键字。 如果关键字存在,则检查:如果布尔isCurrent = True,则设置isCurrent=0,并将该值追加到列表中;否则,如果isCurrent = False,则取当前日期时间的差值,结束日期时间,并获得以月为单位的值,并将该值追加到列表中。 最后,从每个文档的列表中获取
我没有Java经验,我对elasticsearch无痛脚本语言有问题。(这个名字叫“无痛”,选得不好)。 对于下面的代码,我得到了错误: 无法应用 [ 我用(float) doc['newPrice']将它绑定为float 然后我改为<code>“Double price=((Double)doc['discountPrice'] 并收到: “无法从[双]铸造到[双]。” 有人可以帮助我,尝试了很
问题内容: 我只想获取嵌套字段,但不能,因为它不是叶字段。 我在下面尝试过,但是无法匹配嵌套对象中的每个ID和名称。 结果: 这是我的预期结果: 问题答案: 如果您没有某个查询应以某种方式匹配嵌套字段,则可以这样进行: 如果您还有一个查询,并且想返回 匹配 的 嵌套文档,则 可以这样操作(使用):
我用的是Elasticsearch 7.6 我在餐厅索引中有如下文档: 计数表示收到的订单数。 当客户在网站上按菜单名称搜索时,我想给几家餐馆中菜单数量高的餐厅打高分,并将其显示在搜索结果的顶部。 要做到这一点,似乎有必要知道无痛脚本中每个文档中匹配的菜单。 我想知道这是可能的。如果是这样,我该怎么做? 更新感谢大家的回答@jaspreet chahal 我做了这样的索引: 我想做的是在使用多重匹
问题内容: 我想在每个更新时间将一个对象添加到字段中。 例如,我有一个文档: 下次,我想在测试字段中添加一个对象并保存旧对象。结果是: 如何实现? 编辑 我使用脚本: 但是,我得到了例外: 编辑 现在,我想添加一个字段以确保更新或插入对象。例如: 当我更新字段时,当id存在时,我将更新对象。相反,我将插入对象。 问题答案: 我建议尝试这样的脚本,该脚本在参数中带有两个参数。它将检查任何嵌套对象是否