aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2021-04-08 15:27:10 +0200
committerTor Egge <Tor.Egge@online.no>2021-04-08 15:28:09 +0200
commit3cee885280e5a51f98580c3f484c7c54d3cbe9ef (patch)
treee2fdaf5231aa46d9271ae794e1bcadae8d0f16ab /searchlib
parent39430e4e809cb2993a371df38fcac3bb0c798200 (diff)
If unique values can be unsorted then any enum value change is
considered to be a folded change (separate posting list).
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/attribute/enum_store_loaders.cpp5
-rw-r--r--searchlib/src/vespa/searchlib/attribute/enum_store_loaders.h1
2 files changed, 4 insertions, 2 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/enum_store_loaders.cpp b/searchlib/src/vespa/searchlib/attribute/enum_store_loaders.cpp
index 56cca654b96..0e8aa6ee5a8 100644
--- a/searchlib/src/vespa/searchlib/attribute/enum_store_loaders.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/enum_store_loaders.cpp
@@ -96,7 +96,8 @@ EnumeratedLoader::build_dictionary()
EnumeratedPostingsLoader::EnumeratedPostingsLoader(IEnumStore& store)
: EnumeratedLoaderBase(store),
_loaded_enums(),
- _posting_indexes()
+ _posting_indexes(),
+ _has_btree_dictionary(_store.get_dictionary().get_has_btree_dictionary())
{
}
@@ -105,7 +106,7 @@ EnumeratedPostingsLoader::~EnumeratedPostingsLoader() = default;
bool
EnumeratedPostingsLoader::is_folded_change(Index lhs, Index rhs) const
{
- return _store.is_folded_change(lhs, rhs);
+ return !_has_btree_dictionary || _store.is_folded_change(lhs, rhs);
}
void
diff --git a/searchlib/src/vespa/searchlib/attribute/enum_store_loaders.h b/searchlib/src/vespa/searchlib/attribute/enum_store_loaders.h
index 4fa63646ed3..e9e6810cb91 100644
--- a/searchlib/src/vespa/searchlib/attribute/enum_store_loaders.h
+++ b/searchlib/src/vespa/searchlib/attribute/enum_store_loaders.h
@@ -54,6 +54,7 @@ class EnumeratedPostingsLoader : public EnumeratedLoaderBase {
private:
attribute::LoadedEnumAttributeVector _loaded_enums;
vespalib::Array<uint32_t> _posting_indexes;
+ bool _has_btree_dictionary;
public:
EnumeratedPostingsLoader(IEnumStore& store);