电商SKU选择优化维度-倒排索引(搜索引擎原理)

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的五次方。

如何将计算维度降维成了关键。

这里应用 搜索引擎技术(倒排索引 )来处理复杂的多层次搜索问题。

倒排索引 的关键在于索引的建立.

电商SKU选择优化维度-倒排索引(搜索引擎原理)_第1张图片

按图所示将所有的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、当出现多选择的情况时,利用索引文档交集结果可以排除大量的无用条件,降低复杂度

总结: 使用次设计方案 可以大大降低开发的难度和UI的数据交互操作。

并大大的节约CPU运行维度。

你可能感兴趣的:(android,java-设计模式)