func NewDisjunctionSearcher(indexReader index.IndexReader, qsearchers []search.Searcher, min float64, explain bool) (*DisjunctionSearcher, error) { // build the downstream searchres searchers := make(OrderedSearcherList, len(qsearchers)) for i, searcher := range qsearchers { searchers[i] = searcher } // sort the searchers sort.Sort(sort.Reverse(searchers)) // build our searcher rv := DisjunctionSearcher{ indexReader: indexReader, searchers: searchers, currs: make([]*search.DocumentMatch, len(searchers)), scorer: scorers.NewDisjunctionQueryScorer(explain), min: min, } rv.computeQueryNorm() return &rv, nil }
func NewDisjunctionSearcher(indexReader index.IndexReader, qsearchers []search.Searcher, min float64, explain bool) (*DisjunctionSearcher, error) { if DisjunctionMaxClauseCount != 0 && len(qsearchers) > DisjunctionMaxClauseCount { return nil, fmt.Errorf("TooManyClauses[maxClauseCount is set to %d]", DisjunctionMaxClauseCount) } // build the downstream searchers searchers := make(OrderedSearcherList, len(qsearchers)) for i, searcher := range qsearchers { searchers[i] = searcher } // sort the searchers sort.Sort(sort.Reverse(searchers)) // build our searcher rv := DisjunctionSearcher{ indexReader: indexReader, searchers: searchers, currs: make([]*search.DocumentMatch, len(searchers)), scorer: scorers.NewDisjunctionQueryScorer(explain), min: min, } rv.computeQueryNorm() return &rv, nil }