diff options
author | Geir Storli <geirst@verizonmedia.com> | 2019-12-05 10:04:52 +0000 |
---|---|---|
committer | Geir Storli <geirst@verizonmedia.com> | 2019-12-05 13:30:46 +0000 |
commit | f093b271f1f6aafa37079a889ae5d621db275dcb (patch) | |
tree | 840482cbb42ecffb42bdef1bea0d7647cf25984f /container-search/src/main/java/com/yahoo/search/searchers | |
parent | c6484309cfe178a5d2610405460cfb0d4a89db4c (diff) |
Allow nearest neighbor operator where attribute tensor and query tensor have different cell types (float vs double).
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/searchers')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/searchers/ValidateNearestNeighborSearcher.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/searchers/ValidateNearestNeighborSearcher.java b/container-search/src/main/java/com/yahoo/search/searchers/ValidateNearestNeighborSearcher.java index 25c65783821..8cae081cada 100644 --- a/container-search/src/main/java/com/yahoo/search/searchers/ValidateNearestNeighborSearcher.java +++ b/container-search/src/main/java/com/yahoo/search/searchers/ValidateNearestNeighborSearcher.java @@ -85,6 +85,10 @@ public class ValidateNearestNeighborSearcher extends Searcher { errorMessage = Optional.of(ErrorMessage.createIllegalQuery(description)); } + private static boolean isCompatible(TensorType lhs, TensorType rhs) { + return lhs.dimensions().equals(rhs.dimensions()); + } + private static boolean isDenseVector(TensorType tt) { List<TensorType.Dimension> dims = tt.dimensions(); if (dims.size() != 1) return false; @@ -126,7 +130,7 @@ public class ValidateNearestNeighborSearcher extends Searcher { setError(item.toString() + " field is not a tensor"); return; } - if (! fTensorType.equals(qTensorType)) { + if (! isCompatible(fTensorType, qTensorType)) { setError(item.toString() + " field type "+fTensorType+" does not match query tensor type "+qTensorType); return; } |