There are a number of ways to do this. Here is one: Lose the parentid field (unless you have other reasons to keep it). Add a field fullName, and a field called depth :
doc1 fullName: state depth: 0 doc2 fullName: state/department depth:1 doc3 fullName: state/department/Boston depth: 2 doc4 fullName: state/department/Opera depth: 2 doc4 fullName: state/Chicago depth: 1 doc6 fullName: state/department/Opera/November depth: 3 > 1. Same path, for example: /state/department/Boston – return doc3 query: fullName:+/state/department/Boston > 2. Child of the path, for example: /state/department – return doc3,doc4 query: fullName:+/state/department depth:+"1" > 3. All childs of the path for example: /state/department - return > doc3,doc4,doc6 query: fullName:+/state/department/ Is this what you need? Depending on your use cases, there may be better ways of implementing this. As this is not a relational db, we are not concerned (hopefully) with the replicated information in the fullName field. thanks, Glen 2008/8/7 Sergey Kabashnyuk <[EMAIL PROTECTED]>: > Hello > I have such document structure > doc1 > id - 1 > parentid - 0 > name - state > doc2 > id - 2 > parentid - 1 > name - department > doc3 > id - 3 > parentid - 2 > name – Boston > doc4 > id - 4 > parentid - 2 > name – Opera > doc5 > id – 5 > parentid – 1 > name - Chicago > doc6 > id - 6 > parentid - 4 > name – November > > All document a linked by parentid = id – of parent document. > By this link can be retrieved the full path of document, > for example: > doc3-/state/department/Boston > Doc5 - /state/Chicago > > > I want to implement search by path > 1. Same path, for example: /state/department/Boston – return doc3 > 2. Child of the path, for example: /state/department – return doc3,doc4 > 3. All childs of the path for example: /state/department - return > doc3,doc4,doc6 > > I need to advice how the best way it can be implemented? > > Moving is very often operation and storing full path can cost with > additional unwanted operations and therefore it's not a desirable solution > > Sergey Kabashnyuk > eXo Platform SAS > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- -