diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-07-26 04:53:00 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-07-27 09:40:06 +0000 |
commit | abe527c8934175607d4f903a52b9debff7a5935f (patch) | |
tree | 96af21118e31a0950caf976b908c4232a7999785 | |
parent | 006f5d16fd9e5a4010c0b1068a7b96fa35136a8c (diff) |
- Inline FieldSpecBase and deinline FieldSpec constructors.
- Make explicit constructors for test usage to avoid default value for isFilter parameter..
-rw-r--r-- | searchlib/src/vespa/searchlib/queryeval/field_spec.cpp | 15 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/queryeval/field_spec.h | 21 |
2 files changed, 23 insertions, 13 deletions
diff --git a/searchlib/src/vespa/searchlib/queryeval/field_spec.cpp b/searchlib/src/vespa/searchlib/queryeval/field_spec.cpp index cd1ddd5b92e..0d060f6de6b 100644 --- a/searchlib/src/vespa/searchlib/queryeval/field_spec.cpp +++ b/searchlib/src/vespa/searchlib/queryeval/field_spec.cpp @@ -5,12 +5,21 @@ namespace search::queryeval { -FieldSpecBase::FieldSpecBase(uint32_t fieldId, fef::TermFieldHandle handle, bool isFilter_) noexcept - : _fieldId(fieldId | (isFilter_ ? 0x1000000u : 0)), - _handle(handle) +FieldSpec::FieldSpec(const vespalib::string & name, uint32_t fieldId, fef::TermFieldHandle handle) noexcept + : FieldSpec(name, fieldId, handle, false) +{} + +FieldSpec::FieldSpec(const vespalib::string & name, uint32_t fieldId, + fef::TermFieldHandle handle, bool isFilter_) noexcept + : FieldSpecBase(fieldId, handle, isFilter_), + _name(name) { assert(fieldId < 0x1000000); // Can be represented by 24 bits } +FieldSpec::FieldSpec(const vespalib::string & name, FieldSpecBase base) noexcept + : FieldSpecBase(base), + _name(name) +{} FieldSpecBaseList::~FieldSpecBaseList() = default; diff --git a/searchlib/src/vespa/searchlib/queryeval/field_spec.h b/searchlib/src/vespa/searchlib/queryeval/field_spec.h index 960afb95281..6f21ca1e0f0 100644 --- a/searchlib/src/vespa/searchlib/queryeval/field_spec.h +++ b/searchlib/src/vespa/searchlib/queryeval/field_spec.h @@ -19,7 +19,13 @@ namespace search::queryeval { class FieldSpecBase { public: - FieldSpecBase(uint32_t fieldId, fef::TermFieldHandle handle, bool isFilter_ = false) noexcept; + FieldSpecBase(uint32_t fieldId, fef::TermFieldHandle handle) noexcept + : FieldSpecBase(fieldId, handle, false) + { } + FieldSpecBase(uint32_t fieldId, fef::TermFieldHandle handle, bool isFilter_) noexcept + : _fieldId(fieldId | (isFilter_ ? 0x1000000u : 0)), + _handle(handle) + { } // resolve where to put match information for this term/field combination fef::TermFieldMatchData *resolve(fef::MatchData &md) const; @@ -29,7 +35,7 @@ public: /// a filter produces less detailed match data bool isFilter() const noexcept { return _fieldId & 0x1000000; } private: - uint32_t _fieldId; // field id in ranking framework + uint32_t _fieldId; // field id in ranking framework, and isFilter fef::TermFieldHandle _handle; // handle used when exposing match data to ranking framework }; @@ -39,15 +45,10 @@ private: class FieldSpec : public FieldSpecBase { public: + FieldSpec(const vespalib::string & name, uint32_t fieldId, fef::TermFieldHandle handle) noexcept; FieldSpec(const vespalib::string & name, uint32_t fieldId, - fef::TermFieldHandle handle, bool isFilter_ = false) noexcept - : FieldSpecBase(fieldId, handle, isFilter_), - _name(name) - {} - FieldSpec(const vespalib::string & name, FieldSpecBase base) noexcept - : FieldSpecBase(base), - _name(name) - {} + fef::TermFieldHandle handle, bool isFilter_) noexcept; + FieldSpec(const vespalib::string & name, FieldSpecBase base) noexcept; ~FieldSpec(); void setBase(FieldSpecBase base) noexcept { |