func NewBooleanSearcher(indexReader index.IndexReader, mustSearcher search.Searcher, shouldSearcher search.Searcher, mustNotSearcher search.Searcher, explain bool) (*BooleanSearcher, error) { // build our searcher rv := BooleanSearcher{ indexReader: indexReader, mustSearcher: mustSearcher, shouldSearcher: shouldSearcher, mustNotSearcher: mustNotSearcher, scorer: scorers.NewConjunctionQueryScorer(explain), } rv.computeQueryNorm() return &rv, nil }
func NewConjunctionSearcher(indexReader index.IndexReader, qsearchers []search.Searcher, explain bool) (*ConjunctionSearcher, error) { // build the downstream searchres searchers := make(OrderedSearcherList, len(qsearchers)) for i, searcher := range qsearchers { searchers[i] = searcher } // sort the searchers sort.Sort(searchers) // build our searcher rv := ConjunctionSearcher{ indexReader: indexReader, explain: explain, searchers: searchers, currs: make([]*search.DocumentMatch, len(searchers)), scorer: scorers.NewConjunctionQueryScorer(explain), } rv.computeQueryNorm() return &rv, nil }