elasticsearch фильтрация если два поля зависят друг от друга
Всем привет!
Переделываю фильтр интернет магазина на elasticsearch, разобрался с фильтрацией по основным параметрам, все работает, но столкнулся с проблемой сопоставления цен и объемов памяти: У каждого товара, может быть несколько цен, в зависимости от объема памяти, то есть на 32gb стоит 1000, на 64gb - 2000 и тд. Сейчас индекс выглядит так:
{
"_index" : "nss",
"_type" : "_doc",
"_id" : "10",
"_version" : 1,
"_seq_no" : 3,
"_primary_term" : 1,
"found" : true,
"_source" : {
"id" : "10",
"sort" : "10",
"title" : "3G ssc dot",
"category_id" : "1",
"sku" : "89456",
"color" : [
"red",
"blue",
"Black"
],
"screen_resolution" : "1920x1080",
"akb" : "LiPo",
"32gb" : 5300.0,
"64gb" : 6200.0,
"128gb" : 7000.0,
"256gb" : 8100.0
}
}
Думал переделать в такой вид, но тоже не могу найти как как работать с таким индексом:
{
"_index" : "nss",
"_type" : "_doc",
...
"akb" : "LiPo",
"memory" : [
{
"size" : "32gb",
"price" : 5300.0
},
{
"size" : "64gb",
"price" : 6200.0
},
{
"size" : "128gb",
"price" : 7000.0
},
{
"size" : "256gb",
"price" : 8100.0
}
]
}
}
может кто что подскажет, вроде как стандартный функционал для интернет магазина