【发布时间】:2018-04-08 21:01:06
【问题描述】:
我在 ElasticSearch 中有以下结构的文档:
"_source": {
"last_updated": "2017-10-25T18:33:51.434706",
"country": "Italia",
"price": [
"€ 139",
"€ 125",
"€ 120",
"€ 108"
],
"max_occupancy": [
2,
2,
1,
1
],
"type": [
"Type 1",
"Type 1 - (Tag)",
"Type 2",
"Type 2 (Tag)",
],
"availability": [
10,
10,
10,
10
],
"size": [
"26 m²",
"35 m²",
"47 m²",
"31 m²"
]
}
}
基本上,明细记录被拆分为5个数组,同一条记录的字段在5个数组中的索引位置相同。从示例数据中可以看出,有 5 个数组(价格、max_occupancy、类型、可用性、大小)包含与同一元素相关的值。我想提取 max_occupancy 字段大于或等于 2 的元素(如果没有记录 2 抢 3 如果没有 3 抢 4,...),价格较低,在这种情况下为记录并将结果放入一个新的 JSON 对象中,如下所示:
{
"last_updated": "2017-10-25T18:33:51.434706",
"country": "Italia",
"price: ": "€ 125",
"max_occupancy": "2",
"type": "Type 1 - (Tag)",
"availability": 10,
"size": "35 m²"
}
结果结构基本上应该显示提取的记录(在这种情况下是所有数组的第二个索引),并向其中添加一般信息(字段:“last_updated”,“country”)。
是否可以从弹性搜索中提取这样的结果?我需要执行什么样的查询?
有人可以建议最好的方法吗?
【问题讨论】:
标签: elasticsearch elasticsearch-5