[ https://issues.apache.org/jira/browse/LUCENE-3041?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13027279#comment-13027279 ]
Chris Male commented on LUCENE-3041: ------------------------------------ To follow up on Earwin's comments, I'm going to do the following: - Leave Query#rewrite out of the walking process. As Earwin said, rewrite provides vital query optimization / conversion to primitive runnable queries. Having this method on Query is a good idea since user Queries can simply implement this method and move on. - In a separate issue, add a RewriteState like concept which can be used for caching rewrites like that suggested by Simon. This will have a considerable performance improvement for people doing lots of repeated FuzzyQuerys for example. - Change my processing concept into a generic Walker<I, O> system, which can be used for lots of things in Lucene. Users can implement this Walker to do whatever they want (maybe we can pry Earwin's walker based highlighter from him? :D) - Overload IndexSearcher's methods to support passing in a Walker. We need this, instead of simply having the Walker external, because we really want to support per-segment Walking. I'll make a patch for the stuff related to this issue shortly, and spin off the RewriteState stuff. > Support Query Visting / Walking > ------------------------------- > > Key: LUCENE-3041 > URL: https://issues.apache.org/jira/browse/LUCENE-3041 > Project: Lucene - Java > Issue Type: Improvement > Components: Search > Reporter: Chris Male > Priority: Minor > Attachments: LUCENE-3041.patch, LUCENE-3041.patch, LUCENE-3041.patch, > LUCENE-3041.patch > > > Out of the discussion in LUCENE-2868, it could be useful to add a generic > Query Visitor / Walker that could be used for more advanced rewriting, > optimizations or anything that requires state to be stored as each Query is > visited. > We could keep the interface very simple: > {code} > public interface QueryVisitor { > Query visit(Query query); > } > {code} > and then use a reflection based visitor like Earwin suggested, which would > allow implementators to provide visit methods for just Querys that they are > interested in. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org