SKU属性假定为 5维
数量 SKUID 颜色 容量 保修期限 屏幕大小 电池容量
2 1 红色 4G 1 month 3.7 1500mAh
3 2 白色 8G 3 month 4 1900mAh
0 3 白色 8G 3 month 4.3 1900mAh
5 4 黑色 16G 6 month 4.3 2100mAh
当选择 屏幕尺寸 4.3寸时
能选择的颜色 (白色,黑色)
能选择的容量 (8G,16G)
电池容量 (1900mAh,2100mAh)
…
计算维度维5维 复杂度维 N的五次方。
如何将计算维度降维成了关键。
这里应用 搜索引擎技术(倒排索引 )来处理复杂的多层次搜索问题。
倒排索引 的关键在于索引的建立.
按图所示将所有的Key属性作为关键字,将包含这些属性的SKU做为文档存储在对应的List中。
1、单SKU选择情况
当搜索 白色 出现白色的SDK 为 2和3
这样可以得到 以下属性
白色 8G 3 month 4 1900mAh
白色 8G 3 month 4.3 1900mAh
但是因为数量为0不可以选所以最终得到的属性为SKUID = 2
白色 8G 3 month 4 1900mAh
其他的属性应该全部不可操作。
2、出现多SKU选择时的情况
例如 搜索 白色 和4.3寸,
得到的文档为 (2,3),(3,4) 取交集 为 (4)。
得到最终能选择的属性
3、根据两种情况分析
1、使用倒排索引后复杂度降级为一维,大大降低了难度。
2、当出现多选择的情况时,利用索引文档交集结果可以排除大量的无用条件,降低复杂度