我没有存储平面结构,而是使用树形结构来存储lucene索引。在树上进行搜索时,我必须返回搜索节点以及该节点的所有祖先。
对于ex,树就像下面一样。它完整的地理树。
Global
| |
Asia North America
| | |
China USA MEXICO
我可以想到两种方法将这些数据存储在lucene中。
1st approach: Capture on parent node of a given node.
name, parent
Asia, Global
China, Asia
USA, North America
Java Object:
Class Node
id ,name
在这种方法中,让我说我正在寻找美国。根据要求,我必须返回北美和全球的所有美国祖先。所以我必须以递归方式去索引。
2nd approach: store ancestors in lucene index also
Java Object:
class Node
id, name, List<Node> ancestors
在这种方法中,我多次捕获祖先。它会创建一个问题,或者lucene只捕获重复值一次吗?
哪种方法会更好还是在lucene中存储另一种树形结构?
感谢。