diff options
author | Arne H Juul <arnej@yahoo-inc.com> | 2017-02-22 15:02:04 +0100 |
---|---|---|
committer | Arne H Juul <arnej@yahoo-inc.com> | 2017-02-23 10:32:34 +0100 |
commit | 7172938674fdc3e8a63218cb9d93036e2963eacd (patch) | |
tree | 608689551a2412e9e264537dc7ef295c2c3c24f1 /searchsummary | |
parent | 4cff4cef34faff3a5b1f0c51a5852206cb6bee66 (diff) |
make useSlimeInsideFields always true
* remove the useSlimeInsideFields argument, it is now always true
* remove some now-unused code
Diffstat (limited to 'searchsummary')
5 files changed, 8 insertions, 193 deletions
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 f5f37468b79..91420dad7ac 100644 --- a/searchsummary/src/tests/docsummary/slime_summary/slime_summary_test.cpp +++ b/searchsummary/src/tests/docsummary/slime_summary/slime_summary_test.cpp @@ -70,8 +70,7 @@ struct DocsumFixture : IDocsumStore, GetDocsumsStateCallback { ::decode(Memory(buf.GetDrainPos(), buf.GetUsedLen()), slime), 0u); } uint32_t getNumDocs() const override { return 2; } - DocsumStoreValue getMappedDocsum(uint32_t docid, bool useSlimeInsideFields) override { - EXPECT_EQUAL(true, useSlimeInsideFields); + DocsumStoreValue getMappedDocsum(uint32_t docid) override { EXPECT_EQUAL(1u, docid); EXPECT_TRUE(packer->Init(0)); EXPECT_TRUE(packer->AddInteger(4)); diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumstore.h b/searchsummary/src/vespa/searchsummary/docsummary/docsumstore.h index ae611cd71a1..fe4b7c990ca 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/docsumstore.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumstore.h @@ -39,9 +39,8 @@ public: * * @return docsum blob location and size * @param docid local document id - * @param useSlimeInsideFields use serialized slime instead of json for structured fields **/ - virtual DocsumStoreValue getMappedDocsum(uint32_t docid, bool useSlimeInsideFields) = 0; + virtual DocsumStoreValue getMappedDocsum(uint32_t docid) = 0; /** * Will return default input class used. diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp b/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp index c4e70e452cf..e0d0a9fab42 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp @@ -121,9 +121,7 @@ static void convertEntry(GetDocsumsState *state, case RES_JSONSTRING: entry->_resolve_field(&ptr, &len, &state->_docSumFieldSpace); if (len != 0) { - // note: 'JSONSTRING' really means 'structured data', - // and in this code path we depend on calling the - // getMappedDocsum api with flag useSlimeInsideFields=true + // note: 'JSONSTRING' really means 'structured data' size_t d = BinaryFormat::decode_into(Memory(ptr, len), slime, inserter); if (d != len) { LOG(warning, "could not decode %u bytes: %zu bytes decoded", len, d); @@ -157,7 +155,7 @@ DynamicDocsumWriter::insertDocsum(const ResolveClassInfo & rci, } } else { // look up docsum entry - DocsumStoreValue value = docinfos->getMappedDocsum(docid, true); + DocsumStoreValue value = docinfos->getMappedDocsum(docid); // re-pack docsum blob GeneralResult gres(rci.inputClass, 0, docid, 0); if (! gres.inplaceUnpack(value)) { diff --git a/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp b/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp index 5945770d084..6f545dfe88e 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp @@ -36,12 +36,10 @@ #include <vespa/vespalib/geo/zcurve.h> #include <vespa/vespalib/stllike/asciistream.h> #include <vespa/vespalib/stllike/string.h> -#include <vespa/vespalib/util/jsonwriter.h> #include <vespa/vespalib/util/stringfmt.h> #include <vespa/vespalib/data/slime/slime.h> #include <vespa/vespalib/data/slime/convenience.h> #include <vespa/vespalib/data/slime/binary_format.h> -#include <vespa/vespalib/data/slime/json_format.h> #include <vespa/eval/tensor/serialization/slime_binary_format.h> #include <vespa/eval/tensor/serialization/typed_binary_format.h> #include <vespa/vespalib/objects/nbostream.h> @@ -86,7 +84,6 @@ using search::util::URL; using std::make_pair; using std::pair; using std::vector; -using vespalib::JSONWriter; using vespalib::asciistream; using vespalib::geo::ZCurve; using vespalib::make_string; @@ -236,178 +233,6 @@ struct SummaryHandler { }; - -class JsonFiller : public ConstFieldValueVisitor { - JSONWriter &_json; - bool _tokenize; - - virtual void visit(const AnnotationReferenceFieldValue & v ) { - (void)v; - _json.beginObject(); - _json.appendKey("error"); - _json.appendString("cannot convert from annotation reference field"); - _json.endObject(); - } - virtual void visit(const Document & v) { - (void)v; - _json.beginObject(); - _json.appendKey("error"); - _json.appendString("cannot convert from field of type document"); - _json.endObject(); - } - - virtual void visit(const MapFieldValue & v) { - _json.beginArray(); - for (const auto & entry : v) { - _json.beginObject(); - - _json.appendKey("key"); - const FieldValue &key = *(entry.first); - key.accept(*this); - - const FieldValue &val = *(entry.second); - _json.appendKey("value"); - val.accept(*this); - - _json.endObject(); - } - _json.endArray(); - } - - virtual void visit(const ArrayFieldValue &value) { - _json.beginArray(); - if (value.size() > 0) { - for (const FieldValue &fv : value) { - fv.accept(*this); - } - } - _json.endArray(); - } - - virtual void visit(const StringFieldValue &value) { - if (_tokenize) { - asciistream tmp; - SummaryHandler handler(value.getValue(), tmp); - handleIndexingTerms(handler, value); - _json.appendString(tmp.str()); - } else { - _json.appendString(value.getValue()); - } - } - - virtual void visit(const IntFieldValue &value) { - int32_t v = value.getValue(); _json.appendInt64(v); - } - virtual void visit(const LongFieldValue &value) { - int64_t v = value.getValue(); _json.appendInt64(v); - } - virtual void visit(const ShortFieldValue &value) { - int16_t v = value.getValue(); _json.appendInt64(v); - } - virtual void visit(const ByteFieldValue &value) { - int8_t v = value.getAsByte(); _json.appendInt64(v); - } - virtual void visit(const DoubleFieldValue &value) { - double v = value.getValue(); _json.appendDouble(v); - } - virtual void visit(const FloatFieldValue &value) { - float v = value.getValue(); _json.appendFloat(v); - } - - virtual void - visit(const PredicateFieldValue &value) - { - _json.appendJSON(value.toString()); - } - - virtual void - visit(const RawFieldValue &value) - { - // Use base64 coding to represent raw values in json strings. - std::pair<const char *, size_t> buf = value.getAsRaw(); - vespalib::string rawVal(buf.first, buf.first + buf.second); - _json.appendString(vespalib::Base64::encode(rawVal)); - } - - virtual void visit(const StructFieldValue &value) { - // stringref type_name = value.getDataType()->getName(); - if (*value.getDataType() == *SearchDataType::URI) { - FieldValue::UP uriAllValue = value.getValue("all"); - if (uriAllValue.get() != NULL && - uriAllValue->inherits(IDENTIFIABLE_CLASSID(StringFieldValue))) - { - uriAllValue->accept(*this); - return; - } - } - _json.beginObject(); - for (StructFieldValue::const_iterator itr = value.begin(); itr != value.end(); ++itr) { - _json.appendKey(itr.field().getName()); - FieldValue::UP nextValue(value.getValue(itr.field())); - (*nextValue).accept(*this); - } - _json.endObject(); - } - - virtual void visit(const WeightedSetFieldValue &value) { - _json.beginArray(); - if ( value.size() > 0) { - for (const auto & entry : value) { - _json.beginObject(); - _json.appendKey("item"); - entry.first->accept(*this); - _json.appendKey("weight"); - int weight = static_cast<const IntFieldValue &>(*entry.second).getValue(); - _json.appendInt64(weight); - _json.endObject(); - } - } - _json.endArray(); - } - - virtual void visit(const TensorFieldValue &value) override { - const auto &tensor = value.getAsTensorPtr(); - if (tensor) { - auto slime = - vespalib::tensor::SlimeBinaryFormat::serialize(*tensor); - vespalib::SimpleBuffer buf; - vespalib::slime::JsonFormat::encode(*slime, buf, true); - _json.appendJSON(buf.get().make_string()); - } else { - // No tensor value => empty object - _json.beginObject(); - _json.endObject(); - } - } - - void visit(const ReferenceFieldValue& value) override { - _json.appendString(value.hasValidDocumentId() - ? value.getDocumentId().toString() - : string()); - } - -public: - JsonFiller(bool markup, JSONWriter &json) - : _json(json), _tokenize(markup) {} -}; - -class JsonConverter : public FieldValueConverter { - bool _tokenize; -public: - JsonConverter(bool tokenize) - : _tokenize(tokenize) - {} - - FieldValue::UP convert(const FieldValue &input) { - asciistream target; - JSONWriter json(target); - JsonFiller visitor(_tokenize, json); - input.accept(visitor); - return FieldValue::UP(new StringFieldValue(target.str())); - } - -}; - class SummaryFieldValueConverter : protected ConstFieldValueVisitor { asciistream _str; @@ -688,16 +513,10 @@ public: FieldValue::UP SummaryFieldConverter::convertSummaryField(bool markup, - const FieldValue &value, - bool useSlimeInsideFields) + const FieldValue &value) { - if (useSlimeInsideFields) { - SlimeConverter subConv(markup); - return SummaryFieldValueConverter(markup, subConv).convert(value); - } else { - JsonConverter subConv(markup); - return SummaryFieldValueConverter(markup, subConv).convert(value); - } + SlimeConverter subConv(markup); + return SummaryFieldValueConverter(markup, subConv).convert(value); } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.h b/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.h index 9d6f54755cc..ebf723f2111 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.h @@ -14,7 +14,7 @@ class SummaryFieldConverter { public: static document::FieldValue::UP - convertSummaryField(bool markup, const document::FieldValue &value, bool useSlimeInsideFields); + convertSummaryField(bool markup, const document::FieldValue &value); }; } // namespace search::docsummary |