Hi Rene, Have you seen SpanNotQuery?:
<http://lucene.apache.org/java/3_0_1/api/core/org/apache/lucene/search/spans/SpanNotQuery.html> For a document that looks like: <Level_1 id="1"> <Level_2 id="1"> <Level_3 id="1">T1 T2 T3</Level_3> <Level_3 id="2">T4 T5 T6</Level_3> <Level_3 id="3">T7 T8 T9</Level_3> </Level_2> <Level_2 id="2"> <Level_3 id="1">T10 T11 T12</Level_3> <Level_3 id="2">T13 T14 T15</Level_3> <Level_3 id="3">T16 T17 T18</Level_3> </Level_2> ... </Level1> ... You could generate the following token stream (L_X being a concrete level boundary token): L_1 L_2 L_3 T1 T2 T3 L_3 T4 T5 T6 L_3 T7 T8 T9 L_2 L_3 T10 T11 T12 L_3 T13 T14 T15 L_3 T16 T17 T18 L_2 ... ... A query to find T2 and T8 on the same Level_2 would require you to find a span containing T2 and T8, but not containing L_2. This scheme will generalize to as many levels as you need, and you can use nested span queries to simultaneously provide constraints at multiple levels. No position increment gap required. Caveat: this scheme is not tested - I could be way off base :). Steve --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org