lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shai Erera (JIRA)" <>
Subject [jira] [Commented] (LUCENE-4750) Convert DrillDown to DrillDownQuery
Date Sat, 09 Feb 2013 18:05:12 GMT


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:
>             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:

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

View raw message