lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Male (JIRA)" <>
Subject [jira] [Commented] (LUCENE-3056) Support Query Rewriting Caching
Date Mon, 02 May 2011 08:51:03 GMT


Chris Male commented on LUCENE-3056:

bq. This change somewhat depends on LUCENE-3041 since we might wanna pass that RewriteContext
on a per segment level right?

Yeah, thats very true.  I'm wondering whether its best to rethink the signatures of the #search
methods in IS since we need to incorporate both this and LUCENE-3041.

I'll upload a patch shortly addressing the other improvements.

> Support Query Rewriting Caching
> -------------------------------
>                 Key: LUCENE-3056
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Search
>    Affects Versions: 4.0
>            Reporter: Chris Male
>             Fix For: 4.0
>         Attachments: LUCENE-3056.patch
> Out of LUCENE-3041, its become apparent that using a Visitor / Walker isn't right for
caching the rewrites of Querys.  Although we still intend to introduce the Query / Walker
for advanced query transformations, rewriting still serves a purpose for very specific implementation
detail writing.  As such, it can be very expensive.  So I think we should introduce first
class support for rewrite caching.  I also feel the key is to make the caching as transparent
as possible, to reduce the strain on Query implementors.
> The TermState idea gave me the idea of maybe making a RewriteState / RewriteCache / RewriteInterceptor,
which would be consulted for rewritten Querys.  It would then maintain an internal cache that
it would check.  If a value wasn't found, it'd then call Query#rewrite, and cache the result.
> By having this external rewrite source, people could 'pre' rewrite Querys if they were
particularly expensive but also common.

This message is automatically generated by JIRA.
For more information on JIRA, see:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message