aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/vespa/searchlib/attribute/document_weight_or_filter_search.h
blob: 19fa20e2d513b313f3a25298dbbc05c367550da2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.

#include "i_document_weight_attribute.h"
#include <vespa/searchlib/queryeval/searchiterator.h>

namespace search::fef { class MatchData; }
namespace search::attribute {

/**
 * Filter iterator on top of document weight iterators with OR semantics used during
 * calculation of global filter for weighted set terms, wand terms and dot product terms.
 */
class DocumentWeightOrFilterSearch : public queryeval::SearchIterator
{
protected:
    DocumentWeightOrFilterSearch() = default;
public:
    static std::unique_ptr<SearchIterator> create(std::vector<DocumentWeightIterator>&& children);
    static std::unique_ptr<SearchIterator> create(const std::vector<SearchIterator *>& children,
                                                  std::unique_ptr<fef::MatchData> md);
};

}