// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.searchchain; import com.yahoo.component.ComponentId; import com.yahoo.component.chain.Chain; import com.yahoo.component.chain.Phase; import com.yahoo.search.Searcher; import java.util.Collection; import java.util.List; /** * A named collection of searchers. *
* The searchers may have dependencies which define an ordering * of the searchers of this chain. *
* Search chains may inherit the searchers of other chains and modify * the inherited set of searchers. *
* Search chains may be versioned. The version and name string combined * is an unique identifier of a search chain. *
* A search chain cannot be modified once constructed.
*
* @author bratseth
*/
public class SearchChain extends Chain
* This search chain makes a copy of the given lists before return and does not modify the argument lists.
*
* The total set of searchers included in this chain will be
*
*
*
* @param id the id of this search chain
* @param searchers the searchers of this chain, or null if none
* @param phases the phases of this chain
*/
public SearchChain(ComponentId id, Collectionsearchers
.
* inherited
.
* If a searcher with a given name is present in the searchers
list in any version, that
* version will be used, and a searcher with that name will never be included from an inherited search chain.
* If the same searcher exists in multiple inherited chains, the highest version will be used.
* excluded
list.
*