1
对于电子商务,我正在实施elasticsearch以获得产品id的分类和分页结果集。根据过滤条件对elasicsearch结果集进行排序
我有一个产品的文件,看起来像这样:
PUT /products_test/product/1
{
"id": "1",
"title": "foobar",
"sort": 102,
"categories": [
"28554568",
"28554577",
"28554578"
],
}
为了得到结果集我过滤和排序是这样的:
POST /products/_search
{
"filter": {
"term": {
"categories": "28554666"
}
},
"sort" : [
{ "sort" : {"order" : "asc"}}
]
}
然而,如何我现在了解到的要求是,产品分类取决于类别。看看上面的例子,这意味着我需要为类别数组中的每个值添加不同的排序值,并且取决于我要筛选的类别,我想按相应的排序值进行排序。
的文件应该是这个样子:
PUT /products_test/product/1
{
"id": "1",
"title": "foobar",
"categories": [
{ "id": "28554568", "sort": "102" },
{ "id": "28554577", "sort": "482" },
{ "id": "28554578", "sort": "2" }
]
}
现在我的查询应该能够排序是这样的:
POST /products/_search
{
"filter": {
"term": {
"categories.id": "28554666"
}
},
"sort" : [
{ "categories.{filtered_category_id}.sort" : {"order" : "asc"}}
]
}
是它在某种程度上可以做到这一点?
非常感谢您!那是我正在寻找的答案。 – user1036651