summaryrefslogtreecommitdiffstats
path: root/searchsummary
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahoo-inc.com>2017-02-22 15:02:04 +0100
committerArne H Juul <arnej@yahoo-inc.com>2017-02-23 10:32:34 +0100
commit7172938674fdc3e8a63218cb9d93036e2963eacd (patch)
tree608689551a2412e9e264537dc7ef295c2c3c24f1 /searchsummary
parent4cff4cef34faff3a5b1f0c51a5852206cb6bee66 (diff)
make useSlimeInsideFields always true
* remove the useSlimeInsideFields argument, it is now always true * remove some now-unused code
Diffstat (limited to 'searchsummary')
-rw-r--r--searchsummary/src/tests/docsummary/slime_summary/slime_summary_test.cpp3
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/docsumstore.h3
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp6
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp187
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.h2
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