diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2020-07-02 14:27:32 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@broadpark.no> | 2020-07-02 14:28:11 +0200 |
commit | 742ed4f29fab638615814ecac8af752779f22bc3 (patch) | |
tree | af29c95f435d6f54ba95de29fb0952b9a8f7f6a1 | |
parent | 835faf3bd89204f5efb63b1133f27452fd1af242 (diff) |
Require restart if distance metric is changed when hnsw index is not enabled.
2 files changed, 4 insertions, 3 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/AttributeChangeValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/AttributeChangeValidator.java index 4f3e100ce75..5d790c74f18 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/AttributeChangeValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/AttributeChangeValidator.java @@ -96,8 +96,8 @@ public class AttributeChangeValidator { validateAttributeSetting(currAttr, nextAttr, Attribute::densePostingListThreshold, "dense-posting-list-threshold", result); validateAttributeSetting(currAttr, nextAttr, Attribute::isEnabledOnlyBitVector, "rank: filter", result); validateAttributeSetting(currAttr, nextAttr, AttributeChangeValidator::hasHnswIndex, "indexing: index", result); + validateAttributeSetting(currAttr, nextAttr, Attribute::distanceMetric, "distance-metric", result); if (hasHnswIndex(currAttr) && hasHnswIndex(nextAttr)) { - validateAttributeSetting(currAttr, nextAttr, Attribute::distanceMetric, "distance-metric", result); validateAttributeHnswIndexSetting(currAttr, nextAttr, HnswIndexParams::maxLinksPerNode, "max-links-per-node", result); validateAttributeHnswIndexSetting(currAttr, nextAttr, HnswIndexParams::neighborsToExploreAtInsert, "neighbors-to-explore-at-insert", result); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/AttributeChangeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/AttributeChangeValidatorTest.java index 5da36d82a62..e00b34d4a79 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/AttributeChangeValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/AttributeChangeValidatorTest.java @@ -168,11 +168,12 @@ public class AttributeChangeValidatorTest { } @Test - public void changing_distance_metric_without_hnsw_index_enabled_is_ok() throws Exception { + public void changing_distance_metric_without_hnsw_index_enabled_requires_restart() throws Exception { new Fixture("field f1 type tensor(x[2]) { indexing: attribute }", "field f1 type tensor(x[2]) { indexing: attribute \n attribute { " + "distance-metric: geodegrees \n } }"). - assertValidation(); + assertValidation(newRestartAction("Field 'f1' changed: change property " + + "'distance-metric' from 'EUCLIDEAN' to 'GEODEGREES'")); } @Test |