diff options
author | Tor Egge <Tor.Egge@online.no> | 2022-09-21 23:36:08 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2022-09-21 23:36:08 +0200 |
commit | d2955f3c81a16a8b93dd739aacf8f26009ede531 (patch) | |
tree | f59da0070511f217060468175beafeaa36d7830b /searchlib | |
parent | 68e95a835a325c751cfd7a819b59ef67dbf4be48 (diff) |
Remove use of summary fields in search::index::DocBuilder and
search::index::DocTypeBuilder.
Diffstat (limited to 'searchlib')
5 files changed, 2 insertions, 177 deletions
diff --git a/searchlib/src/tests/index/docbuilder/docbuilder_test.cpp b/searchlib/src/tests/index/docbuilder/docbuilder_test.cpp index 9f1027d0522..f76b61dcb78 100644 --- a/searchlib/src/tests/index/docbuilder/docbuilder_test.cpp +++ b/searchlib/src/tests/index/docbuilder/docbuilder_test.cpp @@ -51,17 +51,6 @@ TEST("test docBuilder") s.addAttributeField(Schema::AttributeField("awp1", schema::DataType::INT32, CollectionType::WEIGHTEDSET)); s.addAttributeField(Schema::AttributeField("awp2", schema::DataType::INT64, CollectionType::WEIGHTEDSET)); - s.addSummaryField(Schema::SummaryField("sa", schema::DataType::INT8)); - s.addSummaryField(Schema::SummaryField("sb", schema::DataType::INT16)); - s.addSummaryField(Schema::SummaryField("sc", schema::DataType::INT32)); - s.addSummaryField(Schema::SummaryField("sd", schema::DataType::INT64)); - s.addSummaryField(Schema::SummaryField("se", schema::DataType::FLOAT)); - s.addSummaryField(Schema::SummaryField("sf", schema::DataType::DOUBLE)); - s.addSummaryField(Schema::SummaryField("sg", schema::DataType::STRING)); - s.addSummaryField(Schema::SummaryField("sh", schema::DataType::RAW)); - s.addSummaryField(Schema::SummaryField("si", schema::DataType::RAW, CollectionType::ARRAY)); - s.addSummaryField(Schema::SummaryField("sj", schema::DataType::RAW, CollectionType::WEIGHTEDSET)); - DocBuilder b(s); Document::UP doc; std::vector<std::string> lines; @@ -251,46 +240,11 @@ TEST("test docBuilder") startElement(43).addPosition(1012, 1013).endElement(). startElement(44).addPosition(1014, 1015).endElement(). endField(); - b.startSummaryField("sa").addInt(127).endField(); - b.startSummaryField("sb").addInt(32767).endField(); - b.startSummaryField("sc").addInt(2147483647).endField(); - b.startSummaryField("sd").addInt(2147483648).endField(); - b.startSummaryField("se").addFloat(1234.56).endField(); - b.startSummaryField("sf").addFloat(9876.54).endField(); - b.startSummaryField("sg").addStr("foo bar").endField(); - b.startSummaryField("sh"). - addRaw(raw1s.c_str(), raw1s.size()). - endField(); - b.startSummaryField("si"). - startElement(). - addRaw(raw1a0.c_str(), raw1a0.size()). - endElement(). - startElement(). - addRaw(raw1a1.c_str(), raw1a1.size()). - endElement(). - endField(); - b.startSummaryField("sj"). - startElement(46). - addRaw(raw1w1.c_str(), raw1w1.size()). - endElement(). - startElement(45). - addRaw(raw1w0.c_str(), raw1w0.size()). - endElement(). - endField(); doc = b.endDocument(); xml = doc->toXml(""); boost::split(lines, xml, boost::is_any_of("\n")); itr = lines.begin(); EXPECT_EQUAL("<document documenttype=\"searchdocument\" documentid=\"id:ns:searchdocument::1\">", *itr++); - EXPECT_EQUAL("<sj>", *itr++); - EXPECT_EQUAL(empty +"<item weight=\"46\" binaryencoding=\"base64\">" + - vespalib::Base64::encode(raw1w1) + - "</item>", *itr++); - EXPECT_EQUAL(empty + "<item weight=\"45\" binaryencoding=\"base64\">" + - vespalib::Base64::encode(raw1w0) + - "</item>", *itr++); - EXPECT_EQUAL("</sj>", *itr++); - EXPECT_EQUAL("<sa>127</sa>", *itr++); EXPECT_EQUAL("<iu>", *itr++); EXPECT_EQUAL("<all>http://www.example.com:81/fluke?ab=2#4</all>", *itr++); EXPECT_EQUAL("<host>www.example.com</host>", *itr++); @@ -300,23 +254,12 @@ TEST("test docBuilder") EXPECT_EQUAL("<query>ab=2</query>", *itr++); EXPECT_EQUAL("<fragment>4</fragment>", *itr++); EXPECT_EQUAL("</iu>", *itr++); - EXPECT_EQUAL("<sf>9876.54</sf>", *itr++); EXPECT_EQUAL("<aa>2147483647</aa>", *itr++); EXPECT_EQUAL("<aap2>", *itr++); EXPECT_EQUAL("<item>1047806</item>", *itr++); EXPECT_EQUAL("<item>1048322</item>", *itr++); EXPECT_EQUAL("</aap2>", *itr++); - EXPECT_EQUAL("<se>1234.56</se>", *itr++); - EXPECT_EQUAL("<sg>foo bar</sg>", *itr++); EXPECT_EQUAL("<ia>foo bar baz</ia>", *itr++); - EXPECT_EQUAL("<si>", *itr++); - EXPECT_EQUAL(empty + "<item binaryencoding=\"base64\">" + - vespalib::Base64::encode(raw1a0) + - "</item>", *itr++); - EXPECT_EQUAL(empty + "<item binaryencoding=\"base64\">" + - vespalib::Base64::encode(raw1a1) + - "</item>", *itr++); - EXPECT_EQUAL("</si>", *itr++); EXPECT_EQUAL("<ae>", *itr++); EXPECT_EQUAL("<item>10.5</item>", *itr++); EXPECT_EQUAL("</ae>", *itr++); @@ -324,11 +267,9 @@ TEST("test docBuilder") EXPECT_EQUAL("<item>foo</item>", *itr++); EXPECT_EQUAL("<item>bar baz</item>", *itr++); EXPECT_EQUAL("</ib>", *itr++); - EXPECT_EQUAL("<sd>2147483648</sd>", *itr++); EXPECT_EQUAL("<ah>", *itr++); EXPECT_EQUAL("<item weight=\"3\">20.5</item>", *itr++); EXPECT_EQUAL("</ah>", *itr++); - EXPECT_EQUAL("<sb>32767</sb>", *itr++); EXPECT_EQUAL("<ic>", *itr++); EXPECT_EQUAL("<item weight=\"20\">bar baz</item>", *itr++); EXPECT_EQUAL("<item weight=\"1\">foo</item>", *itr++); @@ -359,7 +300,6 @@ TEST("test docBuilder") EXPECT_EQUAL("</item>", *itr++); EXPECT_EQUAL("</iau>", *itr++); EXPECT_EQUAL("<asp2>1047758</asp2>", *itr++); - EXPECT_EQUAL("<sc>2147483647</sc>", *itr++); EXPECT_EQUAL("<ai>", *itr++); EXPECT_EQUAL("<item weight=\"4\">bar</item>", *itr++); EXPECT_EQUAL("</ai>", *itr++); @@ -399,9 +339,6 @@ TEST("test docBuilder") EXPECT_EQUAL("<item>1004</item>", *itr++); EXPECT_EQUAL("<item>1005</item>", *itr++); EXPECT_EQUAL("</aap1>", *itr++); - EXPECT_EQUAL(empty + "<sh binaryencoding=\"base64\">" + - vespalib::Base64::encode(raw1s) + - "</sh>", *itr++); EXPECT_EQUAL("<af>", *itr++); EXPECT_EQUAL("<item>foo</item>", *itr++); EXPECT_EQUAL("</af>", *itr++); @@ -420,13 +357,11 @@ TEST("test docBuilder") b.startDocument("id:ns:searchdocument::2"); b.startIndexField("ia").addStr("yes").endField(); b.startAttributeField("aa").addInt(20).endField(); - b.startSummaryField("sa").addInt(10).endField(); doc = b.endDocument(); xml = doc->toXml(""); boost::split(lines, xml, boost::is_any_of("\n")); itr = lines.begin(); EXPECT_EQUAL("<document documenttype=\"searchdocument\" documentid=\"id:ns:searchdocument::2\">", *itr++); - EXPECT_EQUAL("<sa>10</sa>", *itr++); EXPECT_EQUAL("<aa>20</aa>", *itr++); EXPECT_EQUAL("<ia>yes</ia>", *itr++); EXPECT_EQUAL("</document>", *itr++); diff --git a/searchlib/src/tests/index/doctypebuilder/doctypebuilder_test.cpp b/searchlib/src/tests/index/doctypebuilder/doctypebuilder_test.cpp index 396c7c19cc6..95854fa11b2 100644 --- a/searchlib/src/tests/index/doctypebuilder/doctypebuilder_test.cpp +++ b/searchlib/src/tests/index/doctypebuilder/doctypebuilder_test.cpp @@ -24,14 +24,13 @@ TEST("testSearchDocType") { s.addAttributeField(Schema::AttributeField("spos", DataType::INT64)); s.addAttributeField(Schema::AttributeField("apos", DataType::INT64, CollectionType::ARRAY)); s.addAttributeField(Schema::AttributeField("wpos", DataType::INT64, CollectionType::WEIGHTEDSET)); - s.addSummaryField(Schema::SummaryField("sa", DataType::STRING)); DocTypeBuilder docTypeBuilder(s); document::config::DocumenttypesConfig config = docTypeBuilder.makeConfig(); DocumentTypeRepo repo(config); const DocumentType *docType = repo.getDocumentType("searchdocument"); ASSERT_TRUE(docType); - EXPECT_EQUAL(11u, docType->getFieldCount()); + EXPECT_EQUAL(10u, docType->getFieldCount()); EXPECT_EQUAL("String", docType->getField("ia").getDataType().getName()); EXPECT_EQUAL("Array<String>", @@ -50,7 +49,6 @@ TEST("testSearchDocType") { docType->getField("apos").getDataType().getName()); EXPECT_EQUAL("WeightedSet<Long>", docType->getField("wpos").getDataType().getName()); - EXPECT_EQUAL("String", docType->getField("sa").getDataType().getName()); } TEST("require that multiple fields can have the same type") { diff --git a/searchlib/src/vespa/searchlib/index/docbuilder.cpp b/searchlib/src/vespa/searchlib/index/docbuilder.cpp index bf0a6866a1a..d6169f2f396 100644 --- a/searchlib/src/vespa/searchlib/index/docbuilder.cpp +++ b/searchlib/src/vespa/searchlib/index/docbuilder.cpp @@ -98,19 +98,6 @@ insertPosition(const Schema::Field & sfield, zvalue->setValue(zpos); } - -void -insertRaw(const Schema::Field & sfield, - document::FieldValue *fvalue, const void *buf, size_t len) -{ - assert(*fvalue->getDataType() == *DataType::RAW); - assert(sfield.getDataType() == schema::DataType::RAW); - (void) sfield; - document::RawFieldValue *rfvalue = - dynamic_cast<RawFieldValue *>(fvalue); - rfvalue->setValue(static_cast<const char *>(buf), len); -} - } namespace docbuilderkludge @@ -543,53 +530,6 @@ DocBuilder::AttributeFieldHandle::addPosition(int32_t xpos, int32_t ypos) } } -DocBuilder::SummaryFieldHandle:: -SummaryFieldHandle(const document::Field & dfield, - const Schema::Field & sfield) - : CollectionFieldHandle(dfield, sfield) -{ -} - -void -DocBuilder::SummaryFieldHandle::addStr(const vespalib::string & val) -{ - if (_element) { - insertStr(_sfield, _element.get(), val); - } else { - insertStr(_sfield, _value.get(), val); - } -} - -void -DocBuilder::SummaryFieldHandle::addInt(int64_t val) -{ - if (_element) { - insertInt(_sfield, _element.get(), val); - } else { - insertInt(_sfield, _value.get(), val); - } -} - -void -DocBuilder::SummaryFieldHandle::addFloat(double val) -{ - if (_element) { - insertFloat(_sfield, _element.get(), val); - } else { - insertFloat(_sfield, _value.get(), val); - } -} - -void -DocBuilder::SummaryFieldHandle::addRaw(const void *buf, size_t len) -{ - if (_element) { - insertRaw(_sfield, _element.get(), buf, len); - } else { - insertRaw(_sfield, _value.get(), buf, len); - } -} - DocBuilder::DocumentHandle::DocumentHandle(document::Document &doc, const vespalib::string & docId) : _type(&doc.getType()), _doc(&doc), @@ -609,10 +549,7 @@ void DocBuilder::DocumentHandle::startAttributeField(const Schema::Field & sfield) { _fieldHandle.reset(new AttributeFieldHandle(_type->getField(sfield.getName()), sfield)); } -void -DocBuilder::DocumentHandle::startSummaryField(const Schema::Field & sfield) { - _fieldHandle.reset(new SummaryFieldHandle(_type->getField(sfield.getName()), sfield)); -} + void DocBuilder::DocumentHandle::endField() { _fieldHandle->onEndField(); @@ -674,21 +611,6 @@ DocBuilder::startAttributeField(const vespalib::string & name) } DocBuilder & -DocBuilder::startSummaryField(const vespalib::string & name) -{ - assert(!_handleDoc->getFieldHandle()); - uint32_t field_id = _schema.getIndexFieldId(name); - assert(field_id == Schema::UNKNOWN_FIELD_ID); - field_id = _schema.getAttributeFieldId(name); - assert(field_id == Schema::UNKNOWN_FIELD_ID); - field_id = _schema.getSummaryFieldId(name); - assert(field_id != Schema::UNKNOWN_FIELD_ID); - _handleDoc->startSummaryField(_schema.getSummaryField(field_id)); - _currDoc = _handleDoc.get(); - return *this; -} - -DocBuilder & DocBuilder::endField() { assert(_currDoc != nullptr); diff --git a/searchlib/src/vespa/searchlib/index/docbuilder.h b/searchlib/src/vespa/searchlib/index/docbuilder.h index a22096cfdbe..a8a37b57070 100644 --- a/searchlib/src/vespa/searchlib/index/docbuilder.h +++ b/searchlib/src/vespa/searchlib/index/docbuilder.h @@ -207,18 +207,6 @@ private: }; /** - * Class for handling the construction of the content of a summary field. - **/ - class SummaryFieldHandle : public CollectionFieldHandle { - public: - SummaryFieldHandle(const document::Field & dfield, const Schema::Field & sfield); - void addStr(const vespalib::string & val) override; - void addInt(int64_t val) override; - void addFloat(double val) override; - void addRaw(const void *buf, size_t len) override; - }; - - /** * Class for handling the construction of a document (set of fields). **/ class DocumentHandle { @@ -235,7 +223,6 @@ private: const FieldHandle::SP & getFieldHandle() const { return _fieldHandle; } void startIndexField(const Schema::Field & sfield); void startAttributeField(const Schema::Field & sfield); - void startSummaryField(const Schema::Field & sfield); void endField(); void endDocument(const document::Document::UP & doc) { (void) doc; @@ -260,7 +247,6 @@ public: DocBuilder & startIndexField(const vespalib::string & name); DocBuilder & startAttributeField(const vespalib::string & name); - DocBuilder & startSummaryField(const vespalib::string & name); DocBuilder & endField(); DocBuilder & startElement(int32_t weight = 1); DocBuilder & endElement(); diff --git a/searchlib/src/vespa/searchlib/index/doctypebuilder.cpp b/searchlib/src/vespa/searchlib/index/doctypebuilder.cpp index 2b81b8c3a57..5f655419471 100644 --- a/searchlib/src/vespa/searchlib/index/doctypebuilder.cpp +++ b/searchlib/src/vespa/searchlib/index/doctypebuilder.cpp @@ -148,22 +148,6 @@ document::config::DocumenttypesConfig DocTypeBuilder::makeConfig() const { usedFields.insert(field.getName()); } - for (uint32_t i = 0; i < _schema.getNumSummaryFields(); ++i) { - const Schema::SummaryField &field = _schema.getSummaryField(i); - UsedFields::const_iterator usf = usedFields.find(field.getName()); - if (usf != usedFields.end()) { - continue; // taken as index field or attribute field - } - auto type_id = convert(field.getDataType()); - if (type_id == DataType::T_TENSOR) { - header_struct.addTensorField(field.getName(), field.get_tensor_spec()); - } else { - header_struct.addField(field.getName(), type_cache.getType( - type_id, field.getCollectionType())); - } - usedFields.insert(field.getName()); - } - DocumenttypesConfigBuilderHelper builder; builder.document(-645763131, "searchdocument", header_struct, Struct("searchdocument.body")); |