我试图将两个字段相乘,其中一个字段在“命中”中,另一个字段在“inner_hits”中。
假设我有以下数据。
{
"cost": 2.26,
"sizes": [
{
"ratio": 1,
"guid": "sfgsfdaa-bec9-42ef-8b3e-54957acc97f3"
},
{
"ratio": 2,
"guid": "sfgsadfg-1cc2-4c73-84e9-fa6c180e5874"
},
{
"ratio": 3,
"guid": "dhsfsfgs-c099-4c83-abbc-cc45a2ecaa46"
}
]
}
“尺寸”字段是嵌套类型的。我正在使用以下查询按guid过滤。
{
"query" : {
"nested": {
"path": "sizes",
"query": {
"bool" : {
"must" : [
{ "match": { "sizes.guid": "dhsfsfgs-c099-4c83-abbc-cc45a2ecaa46" }}
]
}
},
"inner_hits": {}
}
}
}
查询结果如下
{
"took" : 5,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 4.9041457,
"hits" : [
{
"_index" : "test-index",
"_type" : "_doc",
"_id" : "3eEs43sBtPPJDcTfcaVG",
"_score" : 4.9041457,
"_source" : {
"cost": 2.26, //field to be multipled
"sizes": [
{
"ratio": 1,
"guid": "sfgsfdaa-bec9-42ef-8b3e-54957acc97f3"
},
{
"ratio": 2,
"guid": "sfgsadfg-1cc2-4c73-84e9-fa6c180e5874"
},
{
"ratio": 3,
"guid": "dhsfsfgs-c099-4c83-abbc-cc45a2ecaa46"
}
]
},
"inner_hits" : {
"sizes" : {
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 4.9041457,
"hits" : [
{
"_index" : "test-index",
"_type" : "_doc",
"_id" : "3eEs43sBtPPJDcTfcaVG",
"_nested" : {
"field" : "sizes",
"offset" : 2
},
"_score" : 4.9041457,
"_source" : {
"ratio": 3, //field to be multipled
"guid": "dhsfsfgs-c099-4c83-abbc-cc45a2ecaa46"
}
}
]
}
}
}
}
]
}
}
这是我的问题。如何乘以“ratio”(在“hits”中)=
提前感谢!
类似的东西
jq -r '(.[].hits.hits[].inner_hits...... | tonumber)*(.[].hits.hits[]._source.cost | tonumber)'
应该这样做。
问题内容: 我有这样的文件 我需要更改为 为此,首先将字段映射添加到现有索引 然后尝试重新索引 错误是 问题答案: 该字段在您的文档中尚不存在,因此您的脚本需要首先创建它: 或更短一些:
问题内容: 我正在尝试使用Java API通过Elasticsearch实现内部匹配,但是我找不到关于它的许多文档或其他人正在使用的示例。我的JSON搜索工作如下: 我在elasticsearch库中看到了InnerHitsBuilder和addInnerHit方法,但是找不到有关如何使用它们的文档。 问题答案: 请注意,ES源代码中有大量测试用例,正在测试每个功能,因此浏览ES代码是非常丰富的信
问题内容: 我有此映射的索引: 在新索引中,我想将“ title”复制到“ title1”和“ title2”,将“ body”复制到“ body1”和“ body2”(不考虑“ other”),并将类型从“ page”更改为“ Articles_eng”。新索引具有以下映射: 通过查看此答案和Elasticsearch重新索引文档,我得出了类似以下内容: 我在脚本行上遇到了麻烦。如果仅执行第一行
我有这样的实体结构 我执行条件查询 并在where子句的行上获取错误: 调试了一段时间后,我发现实体管理器的元模型中的父元类将属性子级保留为 AC 列表。 知道如何修复这个错误吗?
假设我想存储一些关于会议日程的信息,包括演示时间和暂停时间。我可以在中执行此操作。 但是,如果我还想存储每个块需要多少,以便,我不能只是将其添加为属性: 在Python中这样做的正确方法是什么?如果我创建了一个< code>__init__(self)方法,并将它作为一个实例变量存储在那里,但是它将是可变的。
我在elasticsearch中有一个文档索引,每个文档有480个字段。我试图做的是搜索一个词(例如“Apple”),并获得所有其值与搜索词匹配的唯一字段名。所以如果我的文档是: 作为查询的结果,我希望得到如下所示的聚合: 由于每个文档都有480个字段,所以我更喜欢执行multi_match查询,而不是使用包含所有字段的筛选器: 这个查询在ElasticSearch中可能吗?