summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2022-09-21 23:36:08 +0200
committerTor Egge <Tor.Egge@online.no>2022-09-21 23:36:08 +0200
commitd2955f3c81a16a8b93dd739aacf8f26009ede531 (patch)
treef59da0070511f217060468175beafeaa36d7830b /searchlib
parent68e95a835a325c751cfd7a819b59ef67dbf4be48 (diff)
Remove use of summary fields in search::index::DocBuilder and
search::index::DocTypeBuilder.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/index/docbuilder/docbuilder_test.cpp65
-rw-r--r--searchlib/src/tests/index/doctypebuilder/doctypebuilder_test.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/index/docbuilder.cpp80
-rw-r--r--searchlib/src/vespa/searchlib/index/docbuilder.h14
-rw-r--r--searchlib/src/vespa/searchlib/index/doctypebuilder.cpp16
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"));