blob: 3bfc5989138707b51e7b2c0f829bb254d8a60555 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.solr.common.params;
/**
* Group parameters
*/
public interface GroupParams {
public static final String GROUP = "group";
public static final String GROUP_QUERY = GROUP + ".query";
public static final String GROUP_FIELD = GROUP + ".field";
public static final String GROUP_FUNC = GROUP + ".func";
public static final String GROUP_SORT = GROUP + ".sort";
/** the limit for the number of documents in each group */
public static final String GROUP_LIMIT = GROUP + ".limit";
/** the offset for the doclist of each group */
public static final String GROUP_OFFSET = GROUP + ".offset";
/** treat the first group result as the main result. true/false */
public static final String GROUP_MAIN = GROUP + ".main";
/** treat the first group result as the main result. true/false */
public static final String GROUP_FORMAT = GROUP + ".format";
/**
* Whether to cache the first pass search (doc ids and score) for the second pass search.
* Also defines the maximum size of the group cache relative to maxdoc in a percentage.
* Values can be a positive integer, from 0 till 100. A value of 0 will disable the group cache.
* The default is 0.*/
public static final String GROUP_CACHE_PERCENTAGE = GROUP + ".cache.percent";
// Note: Since you can supply multiple fields to group on, but only have a facets for the whole result. It only makes
// sense to me to support these parameters for the first group.
/** Whether the docSet (for example for faceting) should be based on plain documents (a.k.a UNGROUPED) or on the groups (a.k.a GROUPED).
* The docSet will only the most relevant documents per group. It is if you query for everything with group.limit=1 */
public static final String GROUP_TRUNCATE = GROUP + ".truncate";
/** Whether the group count should be included in the response. */
public static final String GROUP_TOTAL_COUNT = GROUP + ".ngroups";
/** Whether to compute grouped facets based on the first specified group. */
public static final String GROUP_FACET = GROUP + ".facet";
/** Retrieve the top search groups (top group values) from the shards being queried. */
public static final String GROUP_DISTRIBUTED_FIRST = GROUP + ".distributed.first";
/** Retrieve the top groups from the shards being queries based on the specified search groups in
* the {@link #GROUP_DISTRIBUTED_TOPGROUPS_PREFIX} parameters.
*/
public static final String GROUP_DISTRIBUTED_SECOND = GROUP + ".distributed.second";
public static final String GROUP_DISTRIBUTED_TOPGROUPS_PREFIX = GROUP + ".topgroups.";
}