When you use wildcards like that, the parser builds 1 query for each
term matching the wildcarded term. With this approach, it should have
created n queries (ie n boolean clauses) where n is number of terms.
The number of clauses for a BooleanQuery is limited to 1024 by default.
You can change this value to a higher one, but it's not very great.
For my own use, I created a 'AllQuery' which return all the non-deleted
documents with a score of 1
This is also very useful to search queries like 'field1:not word' (the
documents which doesn't contain 'word')
I needed this class only for debugging purpose so I didn't work a lot on
it and it'll be better to write it on your own to have something clean.
Franck
Polina Litvak wrote:
> Since it is not allowed to use "*" or "?" symbols as the first character
> of a search, I tried the following query as an alternative:
> "Field_1: ([a* TO z*] OR [A* TO Z*] OR [0* TO 9*])"
> but the QueryParser complains saying:
> "org.apache.lucene.search.BooleanQuery$TooManyClauses".
>
> Any idea why this approach does not work and how to get all terms in an
> index when doing search ?
>
>
> Thanks,
> Polina
>
>
>
--
Franck Brisbart
R&D
http://www.kelkoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: lucene-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: lucene-user-help@jakarta.apache.org
|