diff options
author | Håvard Pettersen <havardpe@oath.com> | 2019-06-13 13:27:25 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2019-06-13 13:27:25 +0000 |
commit | 534cf911ca025f17961979f1d52259b823749d62 (patch) | |
tree | 3c890d7be39fec3cc22f1981e2f56ca159ac6aed /searchsummary | |
parent | 927ba66e28c4db79201c849d88518863dda8a040 (diff) |
send binary summary features when using slime
Diffstat (limited to 'searchsummary')
-rw-r--r-- | searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp | 10 | ||||
-rw-r--r-- | searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.cpp | 10 |
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) { |