lucene 采用的就是这个思路, 因为这里转化的细节对我们理解整个算法影响不大, 因此可以暂时略过, 我们只要知道, 所有数字都能转化为ascii byte[], 且保持大小关系不变就行了....有了粒度的概念, 我们就知道, 同一个数字, 在不同的粒度世界里, 其对应的数字是不同的, 比如123:
在粒度为1的世界里, 就是123....在粒度为10的世界里, 会转化为120.
在粒度为100的世界里, 会转化为100....按照这个逻辑, 我们可以把123这个数字投射为多个term:
1/123
10/120
100/100
斜杠左边代表粒度, 右边代表在该粒度下的取值....如给定范围423, 642, 会产生结果:
1/[423, 429]
1/[640, 642]
10/[430, 490]
10/[600, 630]
100/[500, 500]
可以看出来, 这一组不同粒度的范围加起来