summaryrefslogtreecommitdiffstats
path: root/streamingvisitors
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2022-06-22 15:15:33 +0000
committerArne H Juul <arnej@yahooinc.com>2022-06-22 15:15:33 +0000
commit9565ad731e3f27da3b54ce4fce186c0afa6d04a7 (patch)
tree20dca074349243778be191fddf39f244da802b15 /streamingvisitors
parent52a552f10e1767a626fd7aa0a17d6f60dc1ad096 (diff)
perform feature renaming in streaming also
Diffstat (limited to 'streamingvisitors')
-rw-r--r--streamingvisitors/src/tests/hitcollector/hitcollector_test.cpp6
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/hitcollector.cpp9
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/hitcollector.h4
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/rankprocessor.cpp2
4 files changed, 15 insertions, 6 deletions
diff --git a/streamingvisitors/src/tests/hitcollector/hitcollector_test.cpp b/streamingvisitors/src/tests/hitcollector/hitcollector_test.cpp
index c8e2bef1016..9715b44b27b 100644
--- a/streamingvisitors/src/tests/hitcollector/hitcollector_test.cpp
+++ b/streamingvisitors/src/tests/hitcollector/hitcollector_test.cpp
@@ -283,11 +283,13 @@ HitCollectorTest::testFeatureSet()
MyRankProgram rankProgram;
FeatureResolver resolver(rankProgram.get_resolver());
- search::FeatureSet::SP sf = hc.getFeatureSet(rankProgram, resolver);
+ search::StringStringMap renames;
+ renames["bar"] = "qux";
+ search::FeatureSet::SP sf = hc.getFeatureSet(rankProgram, resolver, renames);
EXPECT_EQUAL(sf->getNames().size(), 3u);
EXPECT_EQUAL(sf->getNames()[0], "foo");
- EXPECT_EQUAL(sf->getNames()[1], "bar");
+ EXPECT_EQUAL(sf->getNames()[1], "qux");
EXPECT_EQUAL(sf->getNames()[2], "baz");
EXPECT_EQUAL(sf->numFeatures(), 3u);
EXPECT_EQUAL(sf->numDocs(), 3u);
diff --git a/streamingvisitors/src/vespa/searchvisitor/hitcollector.cpp b/streamingvisitors/src/vespa/searchvisitor/hitcollector.cpp
index d11659cfb77..bded8af16cc 100644
--- a/streamingvisitors/src/vespa/searchvisitor/hitcollector.cpp
+++ b/streamingvisitors/src/vespa/searchvisitor/hitcollector.cpp
@@ -143,7 +143,8 @@ HitCollector::fillSearchResult(vdslib::SearchResult & searchResult)
FeatureSet::SP
HitCollector::getFeatureSet(IRankProgram &rankProgram,
- const search::fef::FeatureResolver &resolver)
+ const search::fef::FeatureResolver &resolver,
+ const search::StringStringMap &feature_rename_map)
{
if (resolver.num_features() == 0 || _hits.empty()) {
return FeatureSet::SP(new FeatureSet());
@@ -152,7 +153,11 @@ HitCollector::getFeatureSet(IRankProgram &rankProgram,
std::vector<vespalib::string> names;
names.reserve(resolver.num_features());
for (size_t i = 0; i < resolver.num_features(); ++i) {
- names.emplace_back(resolver.name_of(i));
+ vespalib::string name = resolver.name_of(i);
+ if (feature_rename_map.contains(name)) {
+ name = feature_rename_map[name];
+ }
+ names.emplace_back(name);
}
FeatureSet::SP retval = FeatureSet::SP(new FeatureSet(names, _hits.size()));
for (const Hit & hit : _hits) {
diff --git a/streamingvisitors/src/vespa/searchvisitor/hitcollector.h b/streamingvisitors/src/vespa/searchvisitor/hitcollector.h
index a7bfa5a51b1..d6a05dc4f9e 100644
--- a/streamingvisitors/src/vespa/searchvisitor/hitcollector.h
+++ b/streamingvisitors/src/vespa/searchvisitor/hitcollector.h
@@ -3,6 +3,7 @@
#pragma once
#include <vespa/searchlib/common/featureset.h>
+#include <vespa/searchlib/common/stringmap.h>
#include <vespa/searchlib/fef/matchdata.h>
#include <vespa/vdslib/container/searchresult.h>
#include <vespa/vsm/common/docsum.h>
@@ -132,7 +133,8 @@ public:
* @param resolver feature resolver, gives feature names and values
**/
search::FeatureSet::SP getFeatureSet(IRankProgram &rankProgram,
- const search::fef::FeatureResolver &resolver);
+ const search::fef::FeatureResolver &resolver,
+ const search::StringStringMap &feature_rename_map);
};
diff --git a/streamingvisitors/src/vespa/searchvisitor/rankprocessor.cpp b/streamingvisitors/src/vespa/searchvisitor/rankprocessor.cpp
index e31341c466c..24925bd67ee 100644
--- a/streamingvisitors/src/vespa/searchvisitor/rankprocessor.cpp
+++ b/streamingvisitors/src/vespa/searchvisitor/rankprocessor.cpp
@@ -212,7 +212,7 @@ RankProcessor::calculateFeatureSet()
search::fef::FeatureResolver resolver(rankProgram.get_seeds(false));
LOG(debug, "Feature handles: numNames(%ld)", resolver.num_features());
RankProgramWrapper wrapper(*_match_data);
- FeatureSet::SP sf = _hitCollector->getFeatureSet(wrapper, resolver);
+ FeatureSet::SP sf = _hitCollector->getFeatureSet(wrapper, resolver, _rankSetup.get_feature_rename_map());
LOG(debug, "Feature set: numFeatures(%u), numDocs(%u)", sf->numFeatures(), sf->numDocs());
return sf;
}