Namespace Lucene.Net.Search.Grouping
Classes
AbstractAllGroupHeadsCollector
LUCENENET specific class used to reference an AbstractAllGroupHeadsCollector<GH> subclass without refering to its generic closing type.
AbstractAllGroupHeadsCollector_GroupHead
Represents a group head. A group head is the most relevant document for a particular group. The relevancy is based is usually based on the sort.
The group head contains a group value with its associated most relevant document id.
AbstractAllGroupHeadsCollector<GH>
This collector specializes in collecting the most relevant document (group head) for each group that match the query.
AbstractAllGroupHeadsCollector<GH>.TemporalResult
Contains the result of group head retrieval. To prevent new object creations of this class for every collect.
AbstractAllGroupsCollector<TGroupValue>
A collector that collects all groups that match the query. Only the group value is collected, and the order is undefined. This collector does not determine the most relevant document of a group.
This is an abstract version. Concrete implementations define what a group actually is and how it is internally collected.
AbstractDistinctValuesCollector
LUCENENET specific class used to nest the AbstractDistinctValuesCollector.GroupCount<TGroupValue> class so it has similar syntax to that in Java Lucene (AbstractDistinctValuesCollector.GroupCount{TGroupValue} rather than AbstractDistinctValuesCollector{GC}.GroupCount{TGroupValue}).
AbstractDistinctValuesCollector.GroupCount<TGroupValue>
Returned by Groups, representing the value and set of distinct values for the group.
AbstractDistinctValuesCollector<GC>
A second pass grouping collector that keeps track of distinct values for a specified field for the top N group.
AbstractFirstPassGroupingCollector<TGroupValue>
FirstPassGroupingCollector is the first of two passes necessary to collect grouped hits. This pass gathers the top N sorted groups. Concrete subclasses define what a group is and how it is internally collected.
See org.apache.lucene.search.grouping for more details including a full code example.
AbstractGroupFacetCollector
Base class for computing grouped facets.
AbstractGroupFacetCollector.AbstractSegmentResult
Contains the local grouped segment counts for a particular segment. Each AbstractGroupFacetCollector.AbstractSegmentResult must be added together.
AbstractGroupFacetCollector.FacetEntry
Represents a facet entry with a value and a count.
AbstractGroupFacetCollector.GroupedFacetResult
The grouped facet result. Containing grouped facet entries, total count and total missing count.
AbstractSecondPassGroupingCollector
LUCENENET specific class used to simulate the syntax used to access nested classes of AbstractAllGroupHeadsCollector<GH> without referencing the generic closing type.
AbstractSecondPassGroupingCollector.SearchGroupDocs<TGroupValue>
AbstractSecondPassGroupingCollector<TGroupValue>
SecondPassGroupingCollector is the second of two passes necessary to collect grouped docs. This pass gathers the top N documents per top group computed from the first pass. Concrete subclasses define what a group is and how it is internally collected.
See org.apache.lucene.search.grouping for more details including a full code example.
BlockGroupingCollector
BlockGroupingCollector performs grouping with a single pass collector, as long as you are grouping by a doc block field, ie all documents sharing a given group value were indexed as a doc block using the atomic AddDocuments(IEnumerable<IEnumerable<IIndexableField>>, Analyzer) or UpdateDocuments(Term, IEnumerable<IEnumerable<IIndexableField>>, Analyzer) API.
This results in faster performance (~25% faster QPS) than the two-pass grouping collectors, with the tradeoff being that the documents in each group must always be indexed as a block. This collector also fills in TopGroups.totalGroupCount without requiring the separate TermAllGroupsCollector. However, this collector does not fill in the groupValue of each group; this field will always be null.
NOTE
: this collector makes no effort to verify
the docs were in fact indexed as a block, so it's up to
you to ensure this was the case.
See org.apache.lucene.search.grouping for more details including a full code example.
CollectedSearchGroup<TGroupValue>
Expert: representation of a group in AbstractFirstPassGroupingCollector<TGroupValue>, tracking the top doc and FieldComparer slot.
GroupDocs<TGroupValue>
Represents one group in the results.
@lucene.experimental
GroupingSearch
Convenience class to perform grouping in a non distributed environment.
SearchGroup
LUCENENET specific class used to nest types to mimic the syntax used by Lucene (that is, without specifying the generic closing type of SearchGroup<TGroupValue>)
SearchGroup<TGroupValue>
Represents a group that is found during the first pass search.
TopGroups
LUCENENET specific class used to nest types to mimic the syntax used by Lucene (that is, without specifying the generic closing type of TopGroups<TGroupValue>)
TopGroups<TGroupValue>
Represents result returned by a grouping search.
@lucene.experimental
Interfaces
AbstractDistinctValuesCollector.IGroupCount<TGroupValue>
LUCENENET specific interface used to apply covariance to TGroupValue
IAbstractAllGroupsCollector<TGroupValue>
LUCENENET specific interface used to apply covariance to TGroupValue
IAbstractDistinctValuesCollector<GC>
LUCENENET specific interface used to apply covariance to GC
IAbstractFirstPassGroupingCollector<TGroupValue>
LUCENENET specific interface used to apply covariance to TGroupValue to simulate Java's wildcard generics.
IAbstractSecondPassGroupingCollector<TGroupValue>
LUCENENET specific interface used to apply covariance to TGroupValue to simulate Java's wildcard generics.
ICollectedSearchGroup
LUCENENET specific interface for passing/comparing the CollectedSearchGroup without referencing its generic closing type
IGroupDocs<TGroupValue>
LUCENENET specific interface used to apply covariance to TGroupValue to simulate Java's wildcard generics.
ISearchGroup<TGroupValue>
LUCENENET specific interface used to provide covariance with the TGroupValue type to simulate Java's wildcard generics.
ITopGroups<TGroupValue>
LUCENENET specific interface used to provide covariance with the TGroupValue type to simulate Java's wildcard generics.
Enums
TopGroups.ScoreMergeMode
How the GroupDocs score (if any) should be merged.