aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/vespa/searchlib/memoryindex/posting_iterator.h
blob: 790f8bb3db7223e28a2f8cb430bbef61b8bf487a (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
24
25
26
27
28
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.

#pragma once

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

namespace search::memoryindex {

/**
 * Factory for creating search iterator over memory field index posting list.
 *
 * The template parameter specifies whether the wrapped posting list has interleaved features or not.
 *
 * @param itr           the posting list iterator to base the search iterator upon.
 * @param feature_store reference to store for features.
 * @param field_id      the id of the field searched.
 * @param match_data    the match data to unpack features into.
 */
template <bool interleaved_features>
queryeval::SearchIterator::UP
make_search_iterator(typename FieldIndex<interleaved_features>::PostingList::ConstIterator itr,
                     const FeatureStore& feature_store,
                     uint32_t field_id,
                     fef::TermFieldMatchDataArray match_data);

}