diff options
9 files changed, 5 insertions, 98 deletions
diff --git a/searchsummary/src/tests/docsummary/document_id_dfw/document_id_dfw_test.cpp b/searchsummary/src/tests/docsummary/document_id_dfw/document_id_dfw_test.cpp index 06a20563161..1c4e201e745 100644 --- a/searchsummary/src/tests/docsummary/document_id_dfw/document_id_dfw_test.cpp +++ b/searchsummary/src/tests/docsummary/document_id_dfw/document_id_dfw_test.cpp @@ -74,7 +74,6 @@ DocumentIdDFWTest::DocumentIdDFWTest() { auto* cfg = _result_config->AddResultClass("default", 0); cfg->AddConfigEntry(_field_name.c_str(), search::docsummary::RES_LONG_STRING); - _result_config->CreateEnumMaps(); } diff --git a/searchsummary/src/tests/docsummary/matched_elements_filter/matched_elements_filter_test.cpp b/searchsummary/src/tests/docsummary/matched_elements_filter/matched_elements_filter_test.cpp index 4fcf8c10401..d002a9a2748 100644 --- a/searchsummary/src/tests/docsummary/matched_elements_filter/matched_elements_filter_test.cpp +++ b/searchsummary/src/tests/docsummary/matched_elements_filter/matched_elements_filter_test.cpp @@ -100,7 +100,6 @@ public: EXPECT_TRUE(result_class->AddConfigEntry("array", ResType::RES_JSONSTRING)); EXPECT_TRUE(result_class->AddConfigEntry("map", ResType::RES_JSONSTRING)); EXPECT_TRUE(result_class->AddConfigEntry("map2", ResType::RES_JSONSTRING)); - _config.CreateEnumMaps(); } ~DocsumStore(); const ResultConfig& get_config() const { return _config; } diff --git a/searchsummary/src/tests/docsummary/slime_summary/slime_summary_test.cpp b/searchsummary/src/tests/docsummary/slime_summary/slime_summary_test.cpp index a845a39207f..cbde3d77b4a 100644 --- a/searchsummary/src/tests/docsummary/slime_summary/slime_summary_test.cpp +++ b/searchsummary/src/tests/docsummary/slime_summary/slime_summary_test.cpp @@ -117,7 +117,6 @@ DocsumFixture::DocsumFixture() EXPECT_TRUE(cfg->AddConfigEntry("longdata_field", RES_LONG_DATA)); EXPECT_TRUE(cfg->AddConfigEntry("int_pair_field", RES_JSONSTRING)); config->set_default_result_class_id(0); - config->CreateEnumMaps(); writer = std::make_unique<DynamicDocsumWriter>(std::move(config), std::unique_ptr<KeywordExtractor>()); int_pair_type.addField(Field("foo", *DataType::INT)); int_pair_type.addField(Field("bar", *DataType::INT)); diff --git a/searchsummary/src/vespa/searchsummary/docsummary/res_config_entry.cpp b/searchsummary/src/vespa/searchsummary/docsummary/res_config_entry.cpp index b00b5d975a2..df02d438557 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/res_config_entry.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/res_config_entry.cpp @@ -8,7 +8,6 @@ namespace search::docsummary { ResConfigEntry::ResConfigEntry() noexcept : _type(RES_BAD), _bindname(), - _enumValue(0), _docsum_field_writer() { } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/res_config_entry.h b/searchsummary/src/vespa/searchsummary/docsummary/res_config_entry.h index 6277e955c3d..aaf0ca905bc 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/res_config_entry.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/res_config_entry.h @@ -16,7 +16,6 @@ class DocsumFieldWriter; struct ResConfigEntry { ResType _type; vespalib::string _bindname; - int _enumValue; std::unique_ptr<DocsumFieldWriter> _docsum_field_writer; ResConfigEntry() noexcept; ~ResConfigEntry(); diff --git a/searchsummary/src/vespa/searchsummary/docsummary/resultclass.cpp b/searchsummary/src/vespa/searchsummary/docsummary/resultclass.cpp index 78a9804ccd4..f84de793815 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/resultclass.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/resultclass.cpp @@ -8,12 +8,10 @@ namespace search::docsummary { -ResultClass::ResultClass(const char *name, util::StringEnum & fieldEnum) +ResultClass::ResultClass(const char *name) : _name(name), _entries(), _nameMap(), - _fieldEnum(fieldEnum), - _enumMap(), _dynInfo(), _omit_summary_features(false), _num_field_writer_states(0) @@ -39,8 +37,6 @@ ResultClass::AddConfigEntry(const char *name, ResType type, std::unique_ptr<Docs ResConfigEntry e; e._type = type; e._bindname = name; - e._enumValue = _fieldEnum.Add(name); - assert(e._enumValue >= 0); if (docsum_field_writer) { docsum_field_writer->setIndex(_entries.size()); bool generated = docsum_field_writer->IsGenerated(); @@ -60,17 +56,4 @@ ResultClass::AddConfigEntry(const char *name, ResType type) return AddConfigEntry(name, type, {}); } -void -ResultClass::CreateEnumMap() -{ - _enumMap.resize(_fieldEnum.GetNumEntries()); - - for (int & value : _enumMap) { - value = -1; - } - for (uint32_t i(0); i < _entries.size(); i++) { - _enumMap[_entries[i]._enumValue] = i; - } -} - } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/resultclass.h b/searchsummary/src/vespa/searchsummary/docsummary/resultclass.h index e11032d1aac..d55adb5d098 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/resultclass.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/resultclass.h @@ -44,8 +44,6 @@ private: vespalib::string _name; // name of this class Configs _entries; // config entries for this result class NameIdMap _nameMap; // fieldname -> entry index - util::StringEnum &_fieldEnum; // fieldname -> f.n. enum value [SHARED] - std::vector<int> _enumMap; // fieldname enum value -> entry index DynamicInfo _dynInfo; // fields overridden and generated // Whether or not summary features should be omitted when filling this summary class. // As default, summary features are always included. @@ -60,9 +58,8 @@ public: * ref. to shared string enum object and insert into linked list. * * @param name the name of this result class. - * @param fieldEnum shared object used to enumerate field names. **/ - ResultClass(const char *name, util::StringEnum & fieldEnum); + ResultClass(const char *name); /** * Destructor. Delete internal structures. @@ -101,25 +98,6 @@ public: bool AddConfigEntry(const char *name, ResType type, std::unique_ptr<DocsumFieldWriter> docsum_field_writer); bool AddConfigEntry(const char *name, ResType type); - - - /** - * This method may be called to create an internal mapping from - * field name enumerated value to field index. When building up a - * result configuration possibly containing several result classes, - * all field names are enumerated (across all result classes), - * assigning a single unique integer value to each field name. This - * is done with the StringEnum object given to the - * constructor. This way, fastserver components that want to - * reference a unique field name may use the enumerated value - * instead of the string itself. NOTE: This method must be called in - * order to use the GetIndexFromEnumValue method. NOTE2: This method - * is called by the ResultConfig::CreateEnumMaps method; no - * need to call it directly. - **/ - void CreateEnumMap(); - - /** * Obtain the field index from the field name. The field index may * be used to look up a config entry in this object, or to look up a @@ -135,27 +113,6 @@ public: **/ int GetIndexFromName(const char* name) const; - - /** - * Obtain the field index from the field name enumerated value. The - * field index may be used to look up a config entry in this object, - * or to look up a result entry in a GeneralResult - * object. NOTE: When using the return value from this method to - * look up a result entry in a GeneralResult object, make sure - * that the GeneralResult object has this object as it's - * result class. NOTE2: This method is called by the - * GeneralResult::GetEntryFromEnumValue method; no need to - * call it directly. NOTE3: You need to call the CreateEnumMap - * method before calling this one. - * - * @return field index or -1 if not found - **/ - int GetIndexFromEnumValue(uint32_t value) const - { - return (value < _enumMap.size()) ? _enumMap[value] : -1; - } - - /** * Obtain config entry by field index. * diff --git a/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.cpp b/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.cpp index 63ccf80d4e7..90186c5d1d5 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.cpp @@ -40,7 +40,7 @@ ResultConfig::~ResultConfig() void ResultConfig::Reset() { - if (! _classLookup.empty() || _fieldEnum.GetNumEntries() > 0) { + if (! _classLookup.empty()) { Clean(); } } @@ -52,7 +52,7 @@ ResultConfig::AddResultClass(const char *name, uint32_t id) ResultClass *ret = nullptr; if (id != NoClassID() && (_classLookup.find(id) == _classLookup.end())) { - auto rc = std::make_unique<ResultClass>(name, _fieldEnum); + auto rc = std::make_unique<ResultClass>(name); ret = rc.get(); _classLookup[id] = std::move(rc); if (_nameLookup.find(name) != _nameLookup.end()) { @@ -84,14 +84,6 @@ ResultConfig::LookupResultClassId(const vespalib::string &name) const } -void -ResultConfig::CreateEnumMaps() -{ - for (auto & entry : _classLookup) { - entry.second->CreateEnumMap(); - } -} - namespace { std::atomic<bool> global_useV8geoPositions = false; } @@ -156,9 +148,7 @@ ResultConfig::ReadConfig(const vespa::config::search::SummaryConfig &cfg, const } } } - if (rc) { - CreateEnumMaps(); // create mappings needed by TVM - } else { + if (!rc) { Reset(); // FAIL, discard all config } return rc; diff --git a/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.h b/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.h index 9aaf6fa65b3..456cf9dea69 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.h @@ -35,7 +35,6 @@ private: typedef vespalib::hash_map<uint32_t, std::unique_ptr<ResultClass>> IdMap; uint32_t _defaultSummaryId; bool _useV8geoPositions; - search::util::StringEnum _fieldEnum; IdMap _classLookup; NameMap _nameLookup; // name -> class id @@ -154,23 +153,6 @@ public: **/ uint32_t GetNumResultClasses() const { return _classLookup.size(); } - - /** - * Obtain the string enumeration object that holds the mapping from - * field name to field name enumerated value. - * - * @return field name enumeration. - **/ - const search::util::StringEnum & GetFieldNameEnum() const { return _fieldEnum; } - - - /** - * This method calls the CreateEnumMap on all result classes held by - * this object. This is needed in order to look up fields by field - * name enumerated value. - **/ - void CreateEnumMaps(); - /** * Read config that has been fetched from configserver. * |