aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/vespa/searchlib/attribute/numericbase.h
blob: bbc6d46f5b7129fd5348a83e3885ec240e083d8c (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
29
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.

#pragma once

#include "attributevector.h"
#include "i_enum_store.h"
#include "loadedenumvalue.h"

namespace search {

class ReaderBase;

class NumericAttribute : public AttributeVector
{
protected:
    using EnumIndex = IEnumStore::Index;
    using EnumVector = IEnumStore::EnumVector;

    NumericAttribute(const vespalib::string & name, const AttributeVector::Config & cfg)
        : AttributeVector(name, cfg)
    { }

    virtual void load_enumerated_data(ReaderBase& attrReader, enumstore::EnumeratedPostingsLoader& loader, size_t num_values);
    virtual void load_enumerated_data(ReaderBase& attrReader, enumstore::EnumeratedLoader& loader);
    virtual void load_posting_lists_and_update_enum_store(enumstore::EnumeratedPostingsLoader& loader);
    bool onAddDoc(DocId) override { return true; }
};

} // namespace search