我有一个产品嵌套的文档,其中包含与不同批发商相关的价格清单。 这是一个文档示例:
{
"sku": "065879",
"name": "My product",
"price": [
{
"wholesaler": "1",
"location": "drm3btev3",
"price": "12.34"
},
{
"wholesaler": "2",
"location": "gbsuv7ztq",
"price": "45.67"
},
]
}
给出客户的地理位置,什么是正确的查询以获取按价格排序的文档列表,而仅使用每个文档的最接近价格?
预先感谢!
答案 0 :(得分:0)
这不是一个真正的答案,但是全局方法是使用nested sort。嵌套排序将使您能够过滤要对其应用排序的嵌套文档。
然后,您应该在嵌套排序过滤器中添加一个脚本查询,该脚本查询将确定最接近的批发商。问题是您不能轻松地使用geohash。但是,如果您将geohash转换为geopoint数据类型,则可以使用脚本距离功能(例如here)
然后,您可以通过对所有嵌套文档进行迭代来计算最小距离,并且仅匹配最小距离的文档。
但是我对性能影响和详细实现一无所知。
祝你好运!