假设我有以下示例层次结构:
- 我们
- 密歇根州
- 底特律
- 大急流城
- 兰辛
- 明尼苏达
- 大急流城
- 明尼阿波利斯
- 圣保罗
- 俄亥俄州
- 哥伦布
- 大急流城
- 桑达斯基
- 密歇根州
我看到了两种方法可以索引带有前缀术语的“密歇根州大急流城”文档:
XFIRSTLEVELus
XSECONDLEVELmichigan
XTHIRDLEVELgrandrapids
或者
XFIRSTLEVELus
XSECONDLEVELus_michigan
XTHIRDLEVELus_michigan_grandrapids
我倾向于使用第二种方法,认为它会返回更直观的结果。也就是说,包含密歇根州大急流城搜索条件的搜索不太可能包含来自明尼苏达州和俄亥俄州的文档。
然而,这种方法的两个方面困扰着我。首先,为层次结构的每个级别创建和维护术语前缀感觉是错误的。其次,值的串联似乎是使用权重的替代品。
那么,用术语前缀表示层次结构的最佳方式是什么?