我正在搜索一些产品。
每个产品都有一个名为categories
的数组字段。
我想按这些类别订购。
此外,这些类别具有层次结构。
以下是一些简化的示例产品
product1 = {"categories": ["Bath", "Bath shampoo", "Bath shampoo male"]}
product2 = {"categories": ["Bath", "Bath shampoo", "Bath shampoo child"]}
product3 = {"categories": ["Pets", "Bath", "Bath shampoo", "Bath shampoo animals"]}
这样他们就会被命令
["Bath", "Bath shampoo", "Bath shampoo child"]
["Bath", "Bath shampoo", "Bath shampoo male"]
["Pets", "Bath", "Bath shampoo", "Bath shampoo animals"]
(特殊情况)作为进一步的复杂性,假设我们按Bath
过滤我们希望订单成为
["Pets", "Bath", "Bath shampoo", "Bath shampoo animals"]
["Bath", "Bath shampoo", "Bath shampoo child"]
["Bath", "Bath shampoo", "Bath shampoo male"]
我尝试将此排序脚本添加到查询中。
query["sort"] = {
"_script": {
"script": "string = ''; count = 0; for (value : doc['@flatCategories'].values) { string = string + value; count += 1} string;",
"type": "string",
"lang": "mvel",
"order": "asc"
}
}
但这似乎排除了字符串的总和而不是字母字符串
答案 0 :(得分:0)
你可以添加一个名为merged_categories
的字段,其中保持连接字符串,并按其排序