org.apache.solr.search
Class Grouping.Command<GROUP_VALUE_TYPE>

java.lang.Object
  extended by org.apache.solr.search.Grouping.Command<GROUP_VALUE_TYPE>
Direct Known Subclasses:
Grouping.CommandField, Grouping.CommandFunc, Grouping.CommandQuery
Enclosing class:
Grouping

public abstract class Grouping.Command<GROUP_VALUE_TYPE>
extends Object

General group command. A group command is responsible for creating the first and second pass collectors. A group command is also responsible for creating the response structure.

Note: Maybe the creating the response structure should be done in something like a ReponseBuilder??? Warning NOT thread save!


Field Summary
 int docsPerGroup
           
 Grouping.Format format
           
 int groupOffset
           
 Sort groupSort
           
 String key
           
 boolean main
           
 int numGroups
           
 int offset
           
 Sort sort
           
 Grouping.TotalCount totalCount
           
 
Constructor Summary
Grouping.Command()
           
 
Method Summary
protected  void addDocList(NamedList rsp, GroupDocs groups)
           
protected  NamedList commonResponse()
           
 AbstractAllGroupHeadsCollector<?> createAllGroupCollector()
          Returns a collector that is able to return the most relevant document of all groups.
protected abstract  Collector createFirstPassCollector()
          Returns one or more Collector instances that are needed to perform the first pass search.
protected  Collector createSecondPassCollector()
          Returns zero or more Collector instances that are needed to perform the second pass search.
protected  DocList createSimpleResponse()
           
protected abstract  void finish()
          Performs any necessary post actions to prepare the response.
protected  DocList getDocList(GroupDocs groups)
           
abstract  int getMatches()
          Returns the number of matches for this Command.
protected  Integer getNumberOfGroups()
          Returns the number of groups found for this Command.
protected abstract  void prepare()
          Prepare this Command for execution.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

key

public String key

groupSort

public Sort groupSort

sort

public Sort sort

docsPerGroup

public int docsPerGroup

groupOffset

public int groupOffset

numGroups

public int numGroups

offset

public int offset

format

public Grouping.Format format

main

public boolean main

totalCount

public Grouping.TotalCount totalCount
Constructor Detail

Grouping.Command

public Grouping.Command()
Method Detail

prepare

protected abstract void prepare()
                         throws IOException
Prepare this Command for execution.

Throws:
IOException - If I/O related errors occur

createFirstPassCollector

protected abstract Collector createFirstPassCollector()
                                               throws IOException
Returns one or more Collector instances that are needed to perform the first pass search. If multiple Collectors are returned then these wrapped in a MultiCollector.

Returns:
one or more Collector instances that are need to perform the first pass search
Throws:
IOException - If I/O related errors occur

createSecondPassCollector

protected Collector createSecondPassCollector()
                                       throws IOException
Returns zero or more Collector instances that are needed to perform the second pass search. In the case when no Collector instances are created null is returned. If multiple Collectors are returned then these wrapped in a MultiCollector.

Returns:
zero or more Collector instances that are needed to perform the second pass search
Throws:
IOException - If I/O related errors occur

createAllGroupCollector

public AbstractAllGroupHeadsCollector<?> createAllGroupCollector()
                                                          throws IOException
Returns a collector that is able to return the most relevant document of all groups. Returns null if the command doesn't support this type of collector.

Returns:
a collector that is able to return the most relevant document of all groups.
Throws:
IOException - If I/O related errors occur

finish

protected abstract void finish()
                        throws IOException
Performs any necessary post actions to prepare the response.

Throws:
IOException - If I/O related errors occur

getMatches

public abstract int getMatches()
Returns the number of matches for this Command.

Returns:
the number of matches for this Command

getNumberOfGroups

protected Integer getNumberOfGroups()
Returns the number of groups found for this Command. If the command doesn't support counting the groups null is returned.

Returns:
the number of groups found for this Command

commonResponse

protected NamedList commonResponse()

getDocList

protected DocList getDocList(GroupDocs groups)

addDocList

protected void addDocList(NamedList rsp,
                          GroupDocs groups)

createSimpleResponse

protected DocList createSimpleResponse()


Copyright © 2000-2014 Apache Software Foundation. All Rights Reserved.