Itamar,

Query rewrite replaces wildcards with terms available from
the index. Usually that involves replacing a wildcard with a 
BooleanQuery that is an effective OR over the available
terms while using a flat coordination factor, i.e. it does not
matter how many of the available terms actually match
a document, as long as at least one matches.

For the required query parts (AND like), Scorer.skipTo()
is used, and that could well be the filter mechanism you
are referring to; have a look at the javadocs of Scorer,
and, if necessary, at the actual code of ConjunctionScorer.

Regards,
Paul Elschot





Op Monday 07 April 2008 23:13:09 schreef Itamar Syn-Hershko:
> Hi all,
>
> Can someone from the experts here explain why Lucene has to get a
> "rewritten" query for the Searcher - so Phrase or Wildcards queries
> have to rewrite themselves into a "primitive" query, that is then
> passed to Lucene to look for? I'm probably not familiar too much with
> the internals of Lucene, but I'd imagine that if you can inflate a
> query using wildcards via xxxxQuery sub classing, you could as easily
> (?) have some sort of Filter mechanism during the search, so that
> Lucene retrieves the Position vectors for all the terms that pass
> that filter, instead of retrieving only the position data for
> deterministic terms (with no wildcards etc.). If that was possible to
> do somehow, it could greatly increase the searchability of Lucene
> indices by using RegEx (without re-writing and getting the dreaded
> MaxClauseCount error) and similar.
>
> Would love to hear some insights on this one.
>
> Itamar.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to