diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2019-06-24 15:18:28 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@broadpark.no> | 2019-06-24 15:18:28 +0200 |
commit | 14e53ea2cfa51ecb2a7863c2d641632a2d08fbc2 (patch) | |
tree | bd24d356e08971d9330e5d95e3107e2e1e255693 /searchlib/src/tests | |
parent | d3fc7d9efbf656ec9a5623084fc91be0c79789e8 (diff) |
Cap interleaved features in memory index (field_length, num_occs) to prevent
them wrapping around to low values.
Cap reconstucted interleaved features the same way.
Use interleaved features from memory index when writing disk index.
Diffstat (limited to 'searchlib/src/tests')
-rw-r--r-- | searchlib/src/tests/memoryindex/field_index/field_index_test.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/searchlib/src/tests/memoryindex/field_index/field_index_test.cpp b/searchlib/src/tests/memoryindex/field_index/field_index_test.cpp index 7f2014a2207..ac1735e0549 100644 --- a/searchlib/src/tests/memoryindex/field_index/field_index_test.cpp +++ b/searchlib/src/tests/memoryindex/field_index/field_index_test.cpp @@ -679,6 +679,17 @@ TEST_F(FieldIndexInterleavedFeaturesTest, no_features_are_unpacked) expect_features_unpacked("{1000000:}", 0, 0); } +TEST_F(FieldIndexInterleavedFeaturesTest, interleaved_features_are_capped) +{ + FeatureStore::DecodeContextCooked decoder(nullptr); + WrapInserter(idx).word("b").add(11, getFeatures(66001, 66000)).flush(); + auto itr = this->idx.find("b"); + EXPECT_EQ(11, itr.getKey()); + auto &entry = itr.getData(); + EXPECT_EQ(std::numeric_limits<uint16_t>::max(), entry.get_num_occs()); + EXPECT_EQ(std::numeric_limits<uint16_t>::max(), entry.get_field_length()); +} + Schema make_multi_field_schema() { |