diff options
author | Arne H Juul <arnej@yahoo-inc.com> | 2017-02-22 16:20:12 +0100 |
---|---|---|
committer | Arne H Juul <arnej@yahoo-inc.com> | 2017-02-23 10:32:38 +0100 |
commit | 8ed10198c2863d6b6626456ee21ec900da1bfac0 (patch) | |
tree | ab13153d20fcb11935161851eee7e1c1a1f97b01 /searchsummary | |
parent | 016b6147442552e1cd40a707cf132f2a190670e9 (diff) |
remove unused WriteField method from API
Diffstat (limited to 'searchsummary')
16 files changed, 7 insertions, 644 deletions
diff --git a/searchsummary/src/tests/docsummary/positionsdfw_test.cpp b/searchsummary/src/tests/docsummary/positionsdfw_test.cpp index 2e756a21d2b..1892fa96179 100644 --- a/searchsummary/src/tests/docsummary/positionsdfw_test.cpp +++ b/searchsummary/src/tests/docsummary/positionsdfw_test.cpp @@ -13,6 +13,7 @@ LOG_SETUP("positionsdfw_test"); #include <vespa/searchsummary/docsummary/docsumstate.h> #include <vespa/searchlib/util/rawbuf.h> #include <vespa/vespalib/testkit/testapp.h> +#include <vespa/vespalib/data/slime/slime.h> #include <vespa/juniper/rpinterface.h> using search::RawBuf; @@ -116,16 +117,17 @@ void checkWritePositionField(Test &test, AttrType &attr, createPositionsDFW(attr.getName().c_str(), &attribute_man); ASSERT_TRUE(writer.get()); ResType res_type = RES_LONG_STRING; - RawBuf target(1024); MyGetDocsumsStateCallback callback; GetDocsumsState state(callback); state._attributes.push_back(&attr); - writer->WriteField(doc_id, 0, &state, res_type, &target); + vespalib::Slime target; + vespalib::slime::SlimeInserter inserter(target); + writer->insertField(doc_id, nullptr, &state, res_type, inserter); - test.EXPECT_EQUAL(expected.size(), *(const uint32_t *)(target.GetDrainPos())); - const char *p = target.GetDrainPos() + 4; - test.EXPECT_EQUAL(expected, string(p, p + expected.size())); + vespalib::Memory got = target.get().asString(); + test.EXPECT_EQUAL(expected.size(), got.size); + test.EXPECT_EQUAL(expected, string(got.data, got.size)); } void Test::requireThat2DPositionFieldIsWritten() { diff --git a/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp index 71f15b0d894..869cffb7661 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp @@ -78,11 +78,6 @@ public: SingleAttrDFW(const vespalib::string & attrName) : AttrDFW(attrName) { } - virtual uint32_t WriteField(uint32_t docid, - GeneralResult *gres, - GetDocsumsState *state, - ResType type, - RawBuf *target); virtual void insertField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, @@ -91,92 +86,6 @@ public: virtual bool isDefaultValue(uint32_t docid, const GetDocsumsState * state) const; }; -uint32_t -SingleAttrDFW::WriteField(uint32_t docid, - GeneralResult *, - GetDocsumsState * state, - ResType type, - RawBuf *target) -{ - const char *s=""; - const IAttributeVector & v = vec(*state); - switch (type) { - case RES_INT: { - uint32_t val = v.getInt(docid); - target->append(&val, sizeof(val)); - return sizeof(val); - break; } - case RES_SHORT: { - uint16_t val = v.getInt(docid); - target->append(&val, sizeof(val)); - return sizeof(val); - break; } - case RES_BYTE: { - uint8_t val = v.getInt(docid); - target->append(&val, sizeof(val)); - return sizeof(val); - break; } - case RES_FLOAT: { - float val = v.getFloat(docid); - target->append(&val, sizeof(val)); - return sizeof(val); - break; } - case RES_DOUBLE: { - double val = v.getFloat(docid); - target->append(&val, sizeof(val)); - return sizeof(val); - break; } - case RES_INT64: { - uint64_t val = v.getInt(docid); - target->append(&val, sizeof(val)); - return sizeof(val); - break; } - case RES_STRING: - case RES_DATA: { - s = v.getString(docid, NULL, 0); // no need to pass in a buffer, this attribute has a string storage. - uint32_t len = strlen(s); - uint16_t slen = (len < 0xffff) ? len : 0xffff; - target->append(&slen, sizeof(slen)); - target->append(s, slen); - return (sizeof(slen) + slen); - break; } - case RES_TENSOR: { - vespalib::nbostream str; - BasicType::Type t = v.getBasicType(); - switch (t) { - case BasicType::TENSOR: { - const tensor::TensorAttribute &tv = - static_cast<const tensor::TensorAttribute &>(v); - const auto tensor = tv.getTensor(docid); - if (tensor) { - vespalib::tensor::TypedBinaryFormat::serialize(str, *tensor); - } - } - default: - break; - } - uint32_t slen = str.size(); - target->append(&slen, sizeof(slen)); - target->append(str.peek(), slen); - return (sizeof(slen) + slen); - } - case RES_JSONSTRING: - case RES_XMLSTRING: - case RES_FEATUREDATA: - case RES_LONG_STRING: - case RES_LONG_DATA: { - s = v.getString(docid, NULL, 0); // no need to pass in a buffer, this attribute has a string storage. - uint32_t slen = strlen(s); - target->append(&slen, sizeof(slen)); - target->append(s, slen); - return (sizeof(slen) + slen); - break; } - default: - return 0; - } - return 0; -} - bool SingleAttrDFW::isDefaultValue(uint32_t docid, const GetDocsumsState * state) const { return vec(*state).isUndefined(docid); @@ -268,11 +177,6 @@ class MultiAttrDFW : public AttrDFW { public: MultiAttrDFW(const vespalib::string & attrName) : AttrDFW(attrName) {} - virtual uint32_t WriteField(uint32_t docid, - GeneralResult *gres, - GetDocsumsState *state, - ResType type, - RawBuf *target); virtual void insertField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, @@ -281,72 +185,6 @@ public: }; -uint32_t -MultiAttrDFW::WriteField(uint32_t docid, - GeneralResult *, - GetDocsumsState * state, - ResType type, - RawBuf *target) -{ - bool isLong = IsBinaryCompatible(type, RES_LONG_STRING); - uint32_t written = 0; - uint16_t str_len_16 = 0; - uint32_t str_len_32 = 0; - int str_len_ofs = target->GetUsedLen(); - vespalib::JSONStringer & jsonStr = state->_jsonStringer; - - if (isLong) { - target->append(&str_len_32, sizeof(str_len_32)); - } else { - target->append(&str_len_16, sizeof(str_len_16)); - } - const IAttributeVector & v = vec(*state); - uint32_t entries = v.getValueCount(docid); - { - std::vector<IAttributeVector::WeightedString> elements(entries); - entries = std::min(entries, v.get(docid, &elements[0], entries)); - jsonStr.clear(); - jsonStr.beginArray(); - for (uint32_t i = 0; i < entries; ++i) { - if (v.hasWeightedSetType()) { - jsonStr.beginArray(); - jsonStr.appendString(elements[i].getValue()); - jsonStr.appendInt64(elements[i].getWeight()); - jsonStr.endArray(); - } else { - jsonStr.appendString(elements[i].getValue()); - } - } - jsonStr.endArray(); - (*target) += jsonStr.toString().c_str(); - jsonStr.clear(); - } - - // calculate number of bytes written - written = target->GetUsedLen() - str_len_ofs; - - // patch in correct field length - if (isLong) { - str_len_32 = written - sizeof(str_len_32); - memcpy(target->GetWritableDrainPos(str_len_ofs), - &str_len_32, sizeof(str_len_32)); - } else { - str_len_16 = written - sizeof(str_len_16); - if (str_len_16 != written - sizeof(str_len_16)) { - target->truncate(str_len_ofs); - str_len_16 = 0; - target->append(&str_len_16, sizeof(uint16_t)); - *target += "***OVERFLOW***"; - written = target->GetUsedLen() - str_len_ofs; - str_len_16 = written - sizeof(uint16_t); - assert(str_len_16 == written - sizeof(uint16_t)); - } - memcpy(target->GetWritableDrainPos(str_len_ofs), - &str_len_16, sizeof(str_len_16)); - } - return written; -} - void MultiAttrDFW::insertField(uint32_t docid, GeneralResult *, diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.cpp b/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.cpp index e71b4d0fe69..e4c5181d05f 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.cpp @@ -44,19 +44,6 @@ EmptyDFW::insertField(uint32_t /*docid*/, return; } -uint32_t -EmptyDFW::WriteField(uint32_t docid, - GeneralResult *gres, - GetDocsumsState *state, - ResType type, - search::RawBuf *target) -{ - (void) docid; - (void) gres; - (void) state; - return DocsumFormat::addEmpty(type, *target); -} - //-------------------------------------------------------------------------- CopyDFW::CopyDFW() @@ -172,109 +159,6 @@ CopyDFW::insertField(uint32_t /*docid*/, } } -uint32_t -CopyDFW::WriteField(uint32_t docid, - GeneralResult *gres, - GetDocsumsState *state, - ResType type, - search::RawBuf *target) -{ - (void) docid; - - uint32_t written = 0; - - int idx = gres->GetClass()->GetIndexFromEnumValue(_inputFieldEnumValue); - ResEntry *entry = gres->GetEntry(idx); - - DocsumFormat::Appender appender(*target); - - if (entry != NULL && - IsRuntimeCompatible(entry->_type, type)) { - - // copy field - - switch (type) { - - case RES_INT: { - written += appender.addInt32(entry->_intval); - break; } - - case RES_SHORT: { - written += appender.addShort(entry->_intval); - break; } - - case RES_BYTE: { - written += appender.addByte(entry->_intval); - break; } - - case RES_FLOAT: { - written += appender.addFloat(entry->_doubleval); - break; } - - case RES_DOUBLE: { - written += appender.addDouble(entry->_doubleval); - break; } - - case RES_INT64: { - written += appender.addInt64(entry->_int64val); - break; } - - case RES_STRING: { - uint32_t len; - const char *spt; - // resolve field - entry->_resolve_field(&spt, &len, - &state->_docSumFieldSpace); - written += appender.addShortData(spt, len); - break; } - - case RES_DATA: { - uint32_t len; - const char *dpt; - // resolve field - entry->_resolve_field(&dpt, &len, - &state->_docSumFieldSpace); - written += appender.addShortData(dpt, len); - break; } - - case RES_XMLSTRING: - case RES_JSONSTRING: - case RES_FEATUREDATA: - case RES_LONG_STRING: { - - uint32_t flen = entry->_len; - uint32_t slen = entry->_get_length(); - - // preserve compression flag - target->append(&flen, sizeof(flen)); - written += sizeof(flen); - target->append(entry->_stringval, slen); - written += slen; - - break; } - - case RES_TENSOR: - case RES_LONG_DATA: { - - uint32_t flen = entry->_len; - uint32_t dlen = entry->_get_length(); - - // preserve compression flag - target->append(&flen, sizeof(flen)); - written += sizeof(flen); - target->append(entry->_dataval, dlen); - written += dlen; - - break; } - } - } else { - // insert empty field - written += appender.addEmpty(type); - } - - return written; -} - //-------------------------------------------------------------------------- } // namespace docsummary diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.h b/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.h index 2c276402cbe..2f86e8ef5f1 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.h @@ -29,11 +29,6 @@ public: { return ResultConfig::IsRuntimeCompatible(a, b); } virtual bool IsGenerated() const = 0; - virtual uint32_t WriteField(uint32_t docid, - GeneralResult *gres, - GetDocsumsState *state, - ResType type, - search::RawBuf *target) = 0; virtual void insertField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, @@ -61,11 +56,6 @@ public: virtual ~EmptyDFW(); virtual bool IsGenerated() const { return true; } - virtual uint32_t WriteField(uint32_t docid, - GeneralResult *gres, - GetDocsumsState *state, - ResType type, - search::RawBuf *target); virtual void insertField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, @@ -87,11 +77,6 @@ public: bool Init(const ResultConfig & config, const char *inputField); virtual bool IsGenerated() const { return false; } - virtual uint32_t WriteField(uint32_t docid, - GeneralResult *gres, - GetDocsumsState *state, - ResType type, - search::RawBuf *target); virtual void insertField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, diff --git a/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp index bd83f821ff1..c903c7cbb78 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp @@ -449,23 +449,6 @@ DynamicTeaserDFW::makeDynamicTeaser(uint32_t docid, } } -uint32_t -DynamicTeaserDFW::WriteField(uint32_t docid, - GeneralResult *gres, - GetDocsumsState *state, - ResType type, - search::RawBuf *target) -{ - vespalib::string teaser = makeDynamicTeaser(docid, gres, state); - - bool isLong = IsBinaryCompatible(type, RES_LONG_STRING); - if (isLong) { - return DocsumFormat::addLongData(*target, teaser.c_str(), teaser.size()); - } else { - return DocsumFormat::addShortData(*target, teaser.c_str(), teaser.size()); - } -} - void DynamicTeaserDFW::insertField(uint32_t docid, GeneralResult *gres, diff --git a/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp index b1c68c4ffff..0922b231b10 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp @@ -36,61 +36,6 @@ void fmtZcurve(int64_t zval, vespalib::slime::Inserter &target) } } -void fmtZcurve(int64_t zval, vespalib::JSONWriter json) -{ - int32_t docx = 0; - int32_t docy = 0; - vespalib::geo::ZCurve::decode(zval, &docx, &docy); - json.beginObject(); - json.appendKey("y"); json.appendInt64(docy); - json.appendKey("x"); json.appendInt64(docx); - json.endObject(); -} - -vespalib::asciistream -formatField(const IAttributeVector & attribute, uint32_t docid) -{ - vespalib::asciistream target; - vespalib::JSONWriter json(target); - - if (attribute.hasMultiValue()) { - uint32_t entries = attribute.getValueCount(docid); - LOG(debug, "docid=%d, entries=%d", docid, entries); - json.beginArray(); - if (attribute.hasWeightedSetType()) { - std::vector<IAttributeVector::WeightedInt> elements(entries); - entries = attribute.get(docid, &elements[0], entries); - for (uint32_t i = 0; i < entries; ++i) { - json.beginObject(); - int64_t pos = elements[i].getValue(); - json.appendKey("item"); - fmtZcurve(pos, json); - json.appendKey("weight"); - json.appendInt64(elements[i].getWeight()); - json.endObject(); - } - } else { - std::vector<IAttributeVector::largeint_t> elements(16); - uint32_t numValues = attribute.get(docid, &elements[0], elements.size()); - if (numValues > elements.size()) { - elements.resize(numValues); - numValues = attribute.get(docid, &elements[0], elements.size()); - assert(numValues <= elements.size()); - } - LOG(debug, "docid=%d, numValues=%d", docid, numValues); - for (uint32_t i = 0; i < numValues; i++) { - int64_t pos = elements[i]; - fmtZcurve(pos, json); - } - } - } else { - int64_t pos = attribute.getInt(docid); - LOG(debug, "docid=%d, pos=%ld", docid, pos); - fmtZcurve(pos, json); - } - return target; -} - } void @@ -135,32 +80,6 @@ GeoPositionDFW::insertField(uint32_t docid, GeneralResult *, GetDocsumsState * d } } -uint32_t -GeoPositionDFW::WriteField(uint32_t docid, - GeneralResult *, - GetDocsumsState * dsState, - ResType type, - search::RawBuf * target) -{ - int str_len_ofs = target->GetUsedLen(); - - vespalib::asciistream val(formatField(vec(*dsState), docid)); - - bool isLong = IsBinaryCompatible(type, RES_LONG_STRING); - if (isLong) { - uint32_t str_len_32 = val.size(); - target->append(&str_len_32, sizeof(str_len_32)); - target->append(val.c_str(), str_len_32); - } else { - uint16_t str_len_16 = val.size(); - target->append(&str_len_16, sizeof(str_len_16)); - target->append(val.c_str(), str_len_16); - } - // calculate number of bytes written - uint32_t written = target->GetUsedLen() - str_len_ofs; - return written; -} - GeoPositionDFW::UP GeoPositionDFW::create(const char *attribute_name, IAttributeManager *attribute_manager) diff --git a/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.h b/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.h index a36045f0268..72ec905b5a7 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.h @@ -15,8 +15,6 @@ class GeoPositionDFW : public AttrDFW public: typedef std::unique_ptr<GeoPositionDFW> UP; GeoPositionDFW(const vespalib::string & attrName); - uint32_t WriteField(uint32_t docid, GeneralResult * gres, GetDocsumsState * state, - ResType type, search::RawBuf * target) override; void insertField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, ResType type, vespalib::slime::Inserter &target) override; static UP create(const char *attribute_name, IAttributeManager *attribute_manager); diff --git a/searchsummary/src/vespa/searchsummary/docsummary/juniperdfw.h b/searchsummary/src/vespa/searchsummary/docsummary/juniperdfw.h index 44431a146bb..981885754bd 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/juniperdfw.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/juniperdfw.h @@ -57,11 +57,6 @@ public: GeneralResult *gres, GetDocsumsState *state); - virtual uint32_t WriteField(uint32_t docid, - GeneralResult *gres, - GetDocsumsState *state, - ResType type, - search::RawBuf *target); virtual void insertField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, diff --git a/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp index 723238b1b8b..841840d8349 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp @@ -105,84 +105,6 @@ AbsDistanceDFW::insertField(uint32_t docid, GeneralResult *, GetDocsumsState *st } } - -uint32_t -AbsDistanceDFW::WriteField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, - ResType type, search::RawBuf *target) -{ - (void) gres; - - bool forceEmpty = true; - - const vespalib::string &locationStr = state->_args.getLocation(); - if (locationStr.size() > 0) { - if (state->_parsedLocation.get() == NULL) { - state->_callback.ParseLocation(state); - } - assert(state->_parsedLocation.get() != NULL); - if (state->_parsedLocation->getParseError() == NULL) { - forceEmpty = false; - } - } - - uint32_t written = 0; - if (!forceEmpty) { - uint64_t absdist = findMinDistance(docid, state); - - if (type != RES_INT) { - bool isLong = IsBinaryCompatible(type, RES_LONG_STRING); - uint16_t str_len_16 = 0; - uint32_t str_len_32 = 0; - int str_len_ofs = target->GetUsedLen(); - - if (isLong) - target->append(&str_len_32, sizeof(str_len_32)); - else - target->append(&str_len_16, sizeof(str_len_16)); - - target->addNum64(absdist, 1, ' '); - - // calculate number of bytes written - written = target->GetUsedLen() - str_len_ofs; - - // patch in correct field length - if (isLong) { - str_len_32 = written - sizeof(str_len_32); - memcpy(target->GetWritableDrainPos(str_len_ofs), &str_len_32, - sizeof(str_len_32)); - } else { - str_len_16 = written - sizeof(str_len_16); - memcpy(target->GetWritableDrainPos(str_len_ofs), &str_len_16, - sizeof(str_len_16)); - } - } else { - uint32_t val32 = (uint32_t) absdist; - target->append(&val32, sizeof(val32)); - written = sizeof(val32); - } - } else { - if (type != RES_INT) { - bool isLong = IsBinaryCompatible(type, RES_LONG_STRING); - uint16_t str_len_16 = 0; - uint32_t str_len_32 = 0; - int str_len_ofs = target->GetUsedLen(); - - if (isLong) - target->append(&str_len_32, sizeof(str_len_32)); - else - target->append(&str_len_16, sizeof(str_len_16)); - - // calculate number of bytes written - written = target->GetUsedLen() - str_len_ofs; - } else { - uint32_t val32 = 0u; - target->append(&val32, sizeof(val32)); - written = sizeof(val32); - } - } - return written; -} - //-------------------------------------------------------------------------- PositionsDFW::PositionsDFW(const vespalib::string & attrName) : @@ -243,30 +165,6 @@ formatField(const attribute::IAttributeVector &attribute, uint32_t docid, ResTyp } } -uint32_t -PositionsDFW::WriteField(uint32_t docid, GeneralResult *, GetDocsumsState * dsState, - ResType type, search::RawBuf *target) -{ - int str_len_ofs = target->GetUsedLen(); - - vespalib::asciistream val(formatField(vec(*dsState), docid, type)); - - bool isLong = IsBinaryCompatible(type, RES_LONG_STRING); - if (isLong) { - uint32_t str_len_32 = val.size(); - target->append(&str_len_32, sizeof(str_len_32)); - target->append(val.c_str(), str_len_32); - } else { - uint16_t str_len_16 = val.size(); - target->append(&str_len_16, sizeof(str_len_16)); - target->append(val.c_str(), str_len_16); - } - // calculate number of bytes written - uint32_t written = target->GetUsedLen() - str_len_ofs; - return written; -} - - void PositionsDFW::insertField(uint32_t docid, GeneralResult *, GetDocsumsState * dsState, ResType type, vespalib::slime::Inserter &target) diff --git a/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.h b/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.h index 2140ea52a63..0aad5b2550c 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.h @@ -15,8 +15,6 @@ public: AbsDistanceDFW(const vespalib::string & attrName); bool IsGenerated() const override { return true; } - uint32_t WriteField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, - ResType type, search::RawBuf *target) override; void insertField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, ResType type, vespalib::slime::Inserter &target) override; }; @@ -31,8 +29,6 @@ public: PositionsDFW(const vespalib::string & attrName); bool IsGenerated() const override { return true; } - uint32_t WriteField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, - ResType type, search::RawBuf *target) override; void insertField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, ResType type, vespalib::slime::Inserter &target) override ; }; diff --git a/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp index 629bd37b155..e1378ba1882 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp @@ -23,44 +23,6 @@ RankFeaturesDFW::init(IDocsumEnvironment * env) _env = env; } -uint32_t -RankFeaturesDFW::WriteField(uint32_t docid, - GeneralResult * gres, - GetDocsumsState * state, - ResType type, - search::RawBuf * target) -{ - (void) gres; - - if (state->_rankFeatures.get() == NULL) { - state->_callback.FillRankFeatures(state, _env); - if (state->_rankFeatures.get() == NULL) { // still no rank features to write - return DocsumFormat::addEmpty(type, *target); - } - } - - uint32_t written = 0; - - const FeatureSet::StringVector & names = state->_rankFeatures->getNames(); - const feature_t * values = state->_rankFeatures->getFeaturesByDocId(docid); - vespalib::JSONStringer & json(state->_jsonStringer); - if (values != NULL) { - json.clear(); - json.beginObject(); - for (uint32_t i = 0; i < names.size(); ++i) { - featureDump(json, names[i], values[i]); - } - json.endObject(); - written += SummaryFeaturesDFW::writeString(json.toString(), type, target); - json.clear(); - } else { - written += DocsumFormat::addEmpty(type, *target); - } - - return written; -} - - void RankFeaturesDFW::insertField(uint32_t docid, GeneralResult *, diff --git a/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.h b/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.h index a04271a16c1..3c1382c1eda 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.h @@ -22,11 +22,6 @@ public: virtual ~RankFeaturesDFW(); void init(IDocsumEnvironment * env); virtual bool IsGenerated() const { return true; } - virtual uint32_t WriteField(uint32_t docid, - GeneralResult * gres, - GetDocsumsState * state, - ResType type, - search::RawBuf * target); virtual void insertField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, diff --git a/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.cpp index 758162f5e97..d78f684501f 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.cpp @@ -87,50 +87,6 @@ SummaryFeaturesDFW::insertField(uint32_t docid, } } -uint32_t -SummaryFeaturesDFW::WriteField(uint32_t docid, - GeneralResult * gres, - GetDocsumsState * state, - ResType type, - search::RawBuf * target) -{ - (void) gres; - - if (state->_summaryFeatures.get() == 0) { - state->_callback.FillSummaryFeatures(state, _env); - if (state->_summaryFeatures.get() == 0) { // still no summary features to write - return DocsumFormat::addEmpty(type, *target); - } - } - - uint32_t written = 0; - - const FeatureSet::StringVector &names = state->_summaryFeatures->getNames(); - vespalib::JSONStringer & json(state->_jsonStringer); - const feature_t *values = state->_summaryFeatures->getFeaturesByDocId(docid); - if (values != NULL) { - json.clear(); - json.beginObject(); - for (uint32_t i = 0; i < names.size(); ++i) { - featureDump(json, names[i], values[i]); - } - json.appendKey(_G_cached); - if (state->_summaryFeaturesCached) { - json.appendDouble(1.0); - } else { - json.appendDouble(0.0); - } - json.endObject(); - - written += writeString(json.toString(), type, target); - json.clear(); - } else { - written += DocsumFormat::addEmpty(type, *target); - } - - return written; -} - void FeaturesDFW::featureDump(vespalib::JSONStringer & json, const vespalib::stringref & name, double feature) { json.appendKey(name); diff --git a/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.h b/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.h index 20e2624c7b7..7da574fe1fd 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.h @@ -31,11 +31,6 @@ public: virtual ~SummaryFeaturesDFW(); void init(IDocsumEnvironment * env); virtual bool IsGenerated() const { return true; } - virtual uint32_t WriteField(uint32_t docid, - GeneralResult * gres, - GetDocsumsState * state, - ResType type, - search::RawBuf * target); virtual void insertField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, diff --git a/searchsummary/src/vespa/searchsummary/docsummary/textextractordfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/textextractordfw.cpp index 67a7f9e8da6..3f657efb6c6 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/textextractordfw.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/textextractordfw.cpp @@ -52,44 +52,6 @@ TextExtractorDFW::insertField(uint32_t, target.insertString(vespalib::Memory(extracted.c_str(), extracted.size())); } -uint32_t -TextExtractorDFW::WriteField(uint32_t docid, - GeneralResult * gres, - GetDocsumsState * state, - ResType type, - search::RawBuf * target) -{ - (void) docid; - (void) type; - uint32_t slen = 0; - uint32_t begin = target->GetUsedLen(); - // write text length - target->append(&slen, sizeof(slen)); - - ResEntry * entry = gres->GetEntryFromEnumValue(_inputFieldEnum); - if (entry != NULL) { - const char * buf = NULL; - uint32_t buflen = 0; - entry->_resolve_field(&buf, &buflen, &state->_docSumFieldSpace); - // extract the text - Tokenizer tokenizer(buf, buflen); - while (tokenizer.hasMoreTokens()) { - Tokenizer::Token token = tokenizer.getNextToken(); - target->append(token.getText().c_str(), token.getText().size()); - } - } else { - LOG(warning, "Did not find input entry using field enum %d. Write an empty field", _inputFieldEnum); - } - - // calculate number of bytes written - uint32_t written = target->GetUsedLen() - begin; - // patch in correct text length - slen = written - sizeof(slen); - memcpy(target->GetWritableDrainPos(begin), &slen, sizeof(slen)); - - return written; -} - } } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/textextractordfw.h b/searchsummary/src/vespa/searchsummary/docsummary/textextractordfw.h index f22d5b3daa4..a12455e61a3 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/textextractordfw.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/textextractordfw.h @@ -25,11 +25,6 @@ public: // Inherit doc virtual bool IsGenerated() const { return false; } // Inherit doc - virtual uint32_t WriteField(uint32_t docid, - GeneralResult * gres, - GetDocsumsState * state, - ResType type, - search::RawBuf * target); virtual void insertField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, |