He tenido una aplicación haciendo búsquedas de prefijo por un tiempo. Recientemente se aumentó el tamaño del índice y resultó que algunos prefijos eran demasiado numerosos para que lucene los manejara. Me siguió arrojando un error Too Many Clauses, lo cual fue muy frustrante ya que seguí mirando mis JAR y confirmando que ninguno de los códigos incluidos realmente usaba una consulta booleana.Con Lucene: ¿Por qué obtengo un error Demasiadas cláusulas si hago una búsqueda de prefijo?
¿Por qué no arrojar algo así como una excepción Too Many Hits? ¿Y por qué aumentar el entero estático de las cláusulas max de la consulta booleana hace desaparecer este error, cuando definitivamente solo estoy usando una consulta de prefijo? ¿Hay algo fundamental sobre cómo se ejecutan las consultas que no entiendo? ¿Es que secretamente se convierten en consultas booleanas?
Y esta 'Query.rewrite()' transformación * siempre * sucede antes de que la consulta se ejecute realmente? (Eso parece razonable, que la consulta debe desglosarse en consultas primitivas antes de ejecutarse). – KajMagnus