summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--searchlib/src/vespa/searchlib/attribute/CMakeLists.txt2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attrvector.cpp3
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.cpp15
-rw-r--r--searchlib/src/vespa/searchlib/attribute/single_enum_search_context.cpp18
4 files changed, 38 insertions, 0 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/CMakeLists.txt b/searchlib/src/vespa/searchlib/attribute/CMakeLists.txt
index 5e86c350b55..704db67aa03 100644
--- a/searchlib/src/vespa/searchlib/attribute/CMakeLists.txt
+++ b/searchlib/src/vespa/searchlib/attribute/CMakeLists.txt
@@ -73,6 +73,7 @@ vespa_add_library(searchlib_attribute OBJECT
loadedenumvalue.cpp
loadednumericvalue.cpp
loadedvalue.cpp
+ multi_enum_search_context.cpp
multi_numeric_enum_search_context.cpp
multi_numeric_flag_search_context.cpp
multi_numeric_search_context.cpp
@@ -119,6 +120,7 @@ vespa_add_library(searchlib_attribute OBJECT
singlesmallnumericattribute.cpp
singlestringattribute.cpp
singlestringpostattribute.cpp
+ single_enum_search_context.cpp
single_numeric_enum_search_context.cpp
single_numeric_search_context.cpp
single_small_numeric_search_context.cpp
diff --git a/searchlib/src/vespa/searchlib/attribute/attrvector.cpp b/searchlib/src/vespa/searchlib/attribute/attrvector.cpp
index d5ef41243e7..4a0bdafae8f 100644
--- a/searchlib/src/vespa/searchlib/attribute/attrvector.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/attrvector.cpp
@@ -203,4 +203,7 @@ bool StringDirectAttribute::addDoc(DocId & doc)
return false;
}
+template class NumericDirectAttribute<IntegerAttributeTemplate<int64_t>>;
+template class NumericDirectAttribute<FloatingPointAttributeTemplate<double>>;
+
} // namespace search
diff --git a/searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.cpp b/searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.cpp
new file mode 100644
index 00000000000..566d8e37d89
--- /dev/null
+++ b/searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.cpp
@@ -0,0 +1,15 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include "multi_enum_search_context.hpp"
+#include "string_search_context.h"
+
+using ValueRef = vespalib::datastore::AtomicEntryRef;
+using WeightedValueRef = search::multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>;
+
+namespace search::attribute {
+
+template class MultiEnumSearchContext<const char *, StringSearchContext, ValueRef>;
+
+template class MultiEnumSearchContext<const char *, StringSearchContext, WeightedValueRef>;
+
+}
diff --git a/searchlib/src/vespa/searchlib/attribute/single_enum_search_context.cpp b/searchlib/src/vespa/searchlib/attribute/single_enum_search_context.cpp
new file mode 100644
index 00000000000..c7faeaba977
--- /dev/null
+++ b/searchlib/src/vespa/searchlib/attribute/single_enum_search_context.cpp
@@ -0,0 +1,18 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include "single_enum_search_context.hpp"
+#include "string_search_context.h"
+#include "numeric_range_matcher.h"
+#include "numeric_search_context.h"
+
+namespace search::attribute {
+
+template class SingleEnumSearchContext<const char*, StringSearchContext>;
+template class SingleEnumSearchContext<int8_t, NumericSearchContext<NumericRangeMatcher<int8_t>>>;
+template class SingleEnumSearchContext<int16_t, NumericSearchContext<NumericRangeMatcher<int16_t>>>;
+template class SingleEnumSearchContext<int32_t, NumericSearchContext<NumericRangeMatcher<int32_t>>>;
+template class SingleEnumSearchContext<int64_t, NumericSearchContext<NumericRangeMatcher<int64_t>>>;
+template class SingleEnumSearchContext<float, NumericSearchContext<NumericRangeMatcher<float>>>;
+template class SingleEnumSearchContext<double, NumericSearchContext<NumericRangeMatcher<double>>>;
+
+}