Usando o BooleanQuery ou escreve mais índices?

Uma árvore de categorias como esta:

<code>root_1
  sub_1
  sub_2
  ... to sub_20 
</code>

Todo documento tem uma subcategoria (comosub_2). Agora eu só escrevisub_2 no índice de lucene:

<code>new NumericField("category",...).setIntValue(sub_2.getID());
</code>

Eu quero pegar tudoroot_1documentos, usandoBooleanQuery (mesclar osub_1 parasub_20) pesquisar ou escrever outra categoria em todos os documentos de entrada:

<code>new NumericField("category",...).setIntValue(sub_2.getID());
new NumericField("category",...).setIntValue(root_1.getID());//sub_2's ancestor category
</code>

Qual é a melhor escolha?

questionAnswers(1)

yourAnswerToTheQuestion