aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/vespa/searchlib/attribute/document_weight_or_filter_search.h
blob: e56ccf2dcc5cad21caf11ea67582588801bef7d8 (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 Vespa.ai. 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);
};

}