aboutsummaryrefslogtreecommitdiffstats
path: root/searchsummary
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@oath.com>2019-06-13 13:27:25 +0000
committerHåvard Pettersen <havardpe@oath.com>2019-06-13 13:27:25 +0000
commit534cf911ca025f17961979f1d52259b823749d62 (patch)
tree3c890d7be39fec3cc22f1981e2f56ca159ac6aed /searchsummary
parent927ba66e28c4db79201c849d88518863dda8a040 (diff)
send binary summary features when using slime
Diffstat (limited to 'searchsummary')
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp10
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.cpp10
2 files changed, 14 insertions, 6 deletions
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp
index a1c96bb3e5b..71febe10e59 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp
@@ -30,12 +30,16 @@ RankFeaturesDFW::insertField(uint32_t docid, GetDocsumsState *state,
}
}
const FeatureSet::StringVector & names = state->_rankFeatures->getNames();
- const feature_t * values = state->_rankFeatures->getFeaturesByDocId(docid);
+ const FeatureSet::Value * values = state->_rankFeatures->getFeaturesByDocId(docid);
if (type == RES_FEATUREDATA && values != nullptr) {
vespalib::slime::Cursor& obj = target.insertObject();
for (uint32_t i = 0; i < names.size(); ++i) {
vespalib::Memory name(names[i].c_str(), names[i].size());
- obj.setDouble(name, values[i]);
+ if (values[i].is_data()) {
+ obj.setData(name, values[i].as_data());
+ } else {
+ obj.setDouble(name, values[i].as_double());
+ }
}
return;
}
@@ -44,7 +48,7 @@ RankFeaturesDFW::insertField(uint32_t docid, GetDocsumsState *state,
json.clear();
json.beginObject();
for (uint32_t i = 0; i < names.size(); ++i) {
- featureDump(json, names[i], values[i]);
+ featureDump(json, names[i], values[i].as_double());
}
json.endObject();
vespalib::Memory value(json.toString().data(),
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.cpp
index 9992d782d6e..c5b027a372d 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.cpp
@@ -37,12 +37,16 @@ SummaryFeaturesDFW::insertField(uint32_t docid, GetDocsumsState *state, ResType
}
}
const FeatureSet::StringVector &names = state->_summaryFeatures->getNames();
- const feature_t *values = state->_summaryFeatures->getFeaturesByDocId(docid);
+ const FeatureSet::Value *values = state->_summaryFeatures->getFeaturesByDocId(docid);
if (type == RES_FEATUREDATA && values != nullptr) {
vespalib::slime::Cursor& obj = target.insertObject();
for (uint32_t i = 0; i < names.size(); ++i) {
vespalib::Memory name(names[i].c_str(), names[i].size());
- obj.setDouble(name, values[i]);
+ if (values[i].is_data()) {
+ obj.setData(name, values[i].as_data());
+ } else {
+ obj.setDouble(name, values[i].as_double());
+ }
}
if (state->_summaryFeaturesCached) {
obj.setDouble(_M_cached, 1.0);
@@ -56,7 +60,7 @@ SummaryFeaturesDFW::insertField(uint32_t docid, GetDocsumsState *state, ResType
json.clear();
json.beginObject();
for (uint32_t i = 0; i < names.size(); ++i) {
- featureDump(json, names[i], values[i]);
+ featureDump(json, names[i], values[i].as_double());
}
json.appendKey(_G_cached);
if (state->_summaryFeaturesCached) {