[ 
https://issues.apache.org/jira/browse/LUCENE-4750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13575216#comment-13575216
 ] 

Shai Erera commented on LUCENE-4750:
------------------------------------

Mike, I'm migrating the patch to after the packages reorg, and I want to handle 
the nocommits. In the process I thought about two things:

# Shouldn't rewrite() call res.rewrite()? We don't know what baseQuery will 
rewrite too...
# Perhaps instead of keeping a {{List<Query> drillDownQueries}}, we can build 
the BQ on-the-fly in {{.add()}}? We can then use it in toString and rewrite 
directly, vs now that rewrite always creates a new BQ.
#* BTW, is that an error to *not* create a new BQ on every rewrite? I don't 
think so, but want to verify...

If we do the 2nd, then we can check in the ctor already if baseQuery is a BQ 
and just use it to add the drill-down clauses to? If we need to know what 
baseQuery was, we can clone() it? Is it perhaps too much?
                
> Convert DrillDown to DrillDownQuery
> -----------------------------------
>
>                 Key: LUCENE-4750
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4750
>             Project: Lucene - Core
>          Issue Type: Improvement
>          Components: modules/facet
>            Reporter: Shai Erera
>            Assignee: Michael McCandless
>         Attachments: LUCENE-4750.patch
>
>
> DrillDown is a utility class for creating drill-down queries over a base 
> query and a bunch of categories. We've been asked to support AND, OR and AND 
> of ORs. The latter is not so simple as a static utility method though, so 
> instead we have some sample code ...
> Rather, I think that we can just create a DrillDownQuery (extends Query) 
> which takes a baseQuery in its ctor and exposes add(CategoryPath...), such 
> that every such group of categories is AND'ed with other groups, and 
> internally they are OR'ed. It's very similar to how you would construct a 
> BooleanQuery, only simpler and specific to facets.
> Internally, it would build a BooleanQuery and delegate rewrite, createWeight 
> etc to it.
> That will remove the need for the static utility methods .. or we can keep 
> static term() for convenience.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to