You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Martijn van Groningen (Issue Comment Edited) (JIRA)" <ji...@apache.org> on 2012/02/15 23:13:59 UTC
[jira] [Issue Comment Edited] (LUCENE-3778) Create a grouping
convenience class
[ https://issues.apache.org/jira/browse/LUCENE-3778?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13208846#comment-13208846 ]
Martijn van Groningen edited comment on LUCENE-3778 at 2/15/12 10:12 PM:
-------------------------------------------------------------------------
Yes, it would look something like that.
bq. Would you also handle block (single pass) grouping with the same class...?
I think we can do this. The block grouping returns TopGroups as result.
bq. I guess you'd then .getAllGroups(), .getAllGroupHeads() after .search(...)?
Yes, we need that. In the case of getAllGroups() the TopGroups#totalGroupCount field can be used when the user is only interested in the number of matching groups.
bq. Hmm would we try to handle Term/BytesRef and Function/MutableValue with the same class?
With generics?
{code}
class GroupingSearch {
public <T> TopGroups<T> search(IndexSearcher searcher, Query query, int numGroups) {
...
}
}
{code}
Function usage:
{code}
GroupSearch ctx = new GroupingSearch(groupByFunction);
ctx.useFunction();
...
TopGroups<MutableValue> topGroups = ctx.search(searcher, query, numGroups);
{code}
The same could work for grouping by docvalues types int and float, right?
Maybe distributed grouping needs its own class? Since the usage is different from a non distributed grouping.
was (Author: martijn.v.groningen):
Yes, it would look something like that.
bq. Would you also handle block (single pass) grouping with the same class...?
I think we can do this. The block grouping returns TopGroups as result.
bq. I guess you'd then .getAllGroups(), .getAllGroupHeads() after .search(...)?
Yes, we need that. In the case of getAllGroups() the TopGroups#totalGroupCount field can be used when the user is only interested in the number of matching groups.
bq. Hmm would we try to handle Term/BytesRef and Function/MutableValue with the same class?
With generics?
{code}
class GroupingSearch {
public <T> TopGroups<T> search() {
...
}
}
{code}
Function usage:
{code}
GroupSearch ctx = new GroupingSearch(groupByFunction);
ctx.useFunction();
...
TopGroups<MutableValue> topGroups = ctx.search(searcher, query, numGroups);
{code}
The same could work for grouping by docvalues types int and float, right?
Maybe distributed grouping needs its own class? Since the usage is different from a non distributed grouping.
> Create a grouping convenience class
> -----------------------------------
>
> Key: LUCENE-3778
> URL: https://issues.apache.org/jira/browse/LUCENE-3778
> Project: Lucene - Java
> Issue Type: Improvement
> Components: modules/grouping
> Reporter: Martijn van Groningen
>
> Currently the grouping module has many collector classes with a lot of different options per class. I think it would be a good idea to have a GroupUtil (Or another name?) convenience class. I think this could be a builder, because of the many options (sort,sortWithinGroup,groupOffset,groupCount and more) and implementations (term/dv/function) grouping has.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org