diff options
author | Tor Egge <Tor.Egge@online.no> | 2023-07-21 12:38:49 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2023-07-21 12:38:49 +0200 |
commit | 7abe57ec18020ba99bd7f9c732deedca7d5d9259 (patch) | |
tree | 25ba25b09400649895e899b534de6b817e384f71 /searchlib/src/tests/memoryindex | |
parent | 66287bbdcc6290e278fad3f37c044d3d13ef4395 (diff) |
Drop very long words.
Diffstat (limited to 'searchlib/src/tests/memoryindex')
-rw-r--r-- | searchlib/src/tests/memoryindex/field_inverter/field_inverter_test.cpp | 25 | ||||
-rw-r--r-- | searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp | 2 |
2 files changed, 22 insertions, 5 deletions
diff --git a/searchlib/src/tests/memoryindex/field_inverter/field_inverter_test.cpp b/searchlib/src/tests/memoryindex/field_inverter/field_inverter_test.cpp index 2e3e56a123b..af1824475a8 100644 --- a/searchlib/src/tests/memoryindex/field_inverter/field_inverter_test.cpp +++ b/searchlib/src/tests/memoryindex/field_inverter/field_inverter_test.cpp @@ -18,7 +18,7 @@ #include <vespa/vespalib/objects/nbostream.h> #include <vespa/vespalib/gtest/gtest.h> -namespace search { +namespace search::memoryindex { using document::ArrayFieldValue; using document::DataType; @@ -31,8 +31,6 @@ using search::test::StringFieldBuilder; using namespace index; -namespace memoryindex { - namespace { Document::UP @@ -138,6 +136,16 @@ makeCorruptDocument(DocBuilder &b, size_t wordOffset) return std::make_unique<Document>(b.get_repo(), badstream); } +std::unique_ptr<Document> +make_very_long_word_document(DocBuilder& b) +{ + StringFieldBuilder sfb(b); + auto doc = b.make_document("id:ns:searchdocument::19"); + vespalib::string long_word(FieldInverter::max_word_len + 1, 'z'); + doc->setValue("f0", sfb.tokenize("before ").word(long_word).tokenize(" after").build()); + return doc; +} + } struct FieldInverterTest : public ::testing::Test { @@ -169,7 +177,7 @@ struct FieldInverterTest : public ::testing::Test { for (auto &inverter : _inverters) { vespalib::stringref fieldName = _schema.getIndexField(fieldId).getName(); - inverter->invertField(docId, doc.getValue(fieldName)); + inverter->invertField(docId, doc.getValue(fieldName), doc); ++fieldId; } } @@ -421,7 +429,16 @@ TEST_F(FieldInverterTest, require_that_word_with_NUL_byte_is_dropped_when_trunca _inserter_backend.toStr()); } +TEST_F(FieldInverterTest, very_long_words_are_dropped) +{ + invertDocument(1, *make_very_long_word_document(_b)); + pushDocuments(); + EXPECT_EQ("f=0," + "w=after,a=1," + "w=before,a=1", + _inserter_backend.toStr()); } + } GTEST_MAIN_RUN_ALL_TESTS() diff --git a/searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp b/searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp index 9543b109dc4..e94bf8c9850 100644 --- a/searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp +++ b/searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp @@ -132,7 +132,7 @@ struct UrlFieldInverterTest : public ::testing::Test { ~UrlFieldInverterTest() override; void invertDocument(uint32_t docId, const Document &doc) { - _urlInverter->invertField(docId, doc.getValue(url)); + _urlInverter->invertField(docId, doc.getValue(url), doc); } void pushDocuments() { |