diff options
author | Arne Juul <arnej@verizonmedia.com> | 2019-11-19 13:23:31 +0000 |
---|---|---|
committer | Arne Juul <arnej@verizonmedia.com> | 2019-11-19 14:08:55 +0000 |
commit | 7d8c0ced9bbb71d00a9a6eae2f070ba685f20164 (patch) | |
tree | 72f5ecd91b7e19030d4eb286d4d193e07b2027d2 /container-search/src | |
parent | 8b5afa32df34cc3e65318515d6d71e416425b07b (diff) |
updates after review
Diffstat (limited to 'container-search/src')
4 files changed, 27 insertions, 25 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/NearestNeighborItem.java b/container-search/src/main/java/com/yahoo/prelude/query/NearestNeighborItem.java index 51a336fa4ba..35b87ec0190 100644 --- a/container-search/src/main/java/com/yahoo/prelude/query/NearestNeighborItem.java +++ b/container-search/src/main/java/com/yahoo/prelude/query/NearestNeighborItem.java @@ -9,9 +9,9 @@ import java.nio.ByteBuffer; /** * Represent a query item matching the K nearest neighbors in a multi-dimensional vector space. - * The query point vector is referenced by the name of a tensor rank feature passed in the query, - * so specifying "myvector" as the name means the query must set "ranking.features.query(myvector)", - * which must be configured with the correct tensor type in the active query profile. + * The query point vector is referenced by the name of a tensor passed as a query rank feature; + * specifying "myvector" as the name means the query must set "ranking.features.query(myvector)". + * This rank feature must be configured with the correct tensor type in the active query profile. * The field name (AKA the index name) given must be an attribute, with the exact same tensor type. * * @author arnej @@ -19,25 +19,26 @@ import java.nio.ByteBuffer; @Beta public class NearestNeighborItem extends SimpleTaggableItem { - private int targetNumber = 0; + private int targetNumHits = 0; private String field; - private String property; + private String queryTensorName; - /** @return the K number of hits to produce */ - public int getTargetNumHits() { return targetNumber; } + public NearestNeighborItem(String fieldName, String queryTensorName) { + this.field = fieldName; + this.queryTensorName = queryTensorName; + } - /** @return the field name */ - public String getIndexName() { return field; } + /** Returns the K number of hits to produce */ + public int getTargetNumHits() { return targetNumHits; } - /** @return the name of the query ranking feature */ - public String getQueryRankFeatureName() { return property; } + /** Returns the field name */ + public String getIndexName() { return field; } - public NearestNeighborItem(String fieldName, String queryRankFeatureName) { - this.field = fieldName; - this.property = queryRankFeatureName; - } + /** Returns the name of the query tensor */ + public String getQueryTensorName() { return queryTensorName; } - public void setTargetNumHits(int target) { this.targetNumber = target; } + /** Set the K number of hits to produce */ + public void setTargetNumHits(int target) { this.targetNumHits = target; } @Override public void setIndexName(String index) { this.field = index; } @@ -55,15 +56,15 @@ public class NearestNeighborItem extends SimpleTaggableItem { public int encode(ByteBuffer buffer) { super.encodeThis(buffer); putString(field, buffer); - putString(property, buffer); - IntegerCompressor.putCompressedPositiveNumber(targetNumber, buffer); + putString(queryTensorName, buffer); + IntegerCompressor.putCompressedPositiveNumber(targetNumHits, buffer); return 1; // number of encoded stack dump items } @Override protected void appendBodyString(StringBuilder buffer) { buffer.append("{field=").append(field); - buffer.append(",property=").append(property); - buffer.append(",targetNumHits=").append(targetNumber).append("}"); + buffer.append(",queryTensorName=").append(queryTensorName); + buffer.append(",targetNumHits=").append(targetNumHits).append("}"); } } 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 c2e05b15f33..dfd8205cd05 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 @@ -1,4 +1,5 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + package com.yahoo.search.searchers; import com.google.common.annotations.Beta; @@ -84,7 +85,7 @@ public class ValidateNearestNeighborSearcher extends Searcher { setError(item.toString() + " has invalid targetNumHits"); return; } - String qprop = item.getQueryRankFeatureName(); + String qprop = item.getQueryTensorName(); List<Object> rankPropValList = rankProperties.asMap().get(qprop); if (rankPropValList == null) { setError(item.toString() + " query property not found"); diff --git a/container-search/src/main/java/com/yahoo/search/yql/VespaSerializer.java b/container-search/src/main/java/com/yahoo/search/yql/VespaSerializer.java index 6ab07d95c76..6eef1252998 100644 --- a/container-search/src/main/java/com/yahoo/search/yql/VespaSerializer.java +++ b/container-search/src/main/java/com/yahoo/search/yql/VespaSerializer.java @@ -705,7 +705,7 @@ public class VespaSerializer { destination.append("}]"); destination.append(NEAREST_NEIGHBOR).append('('); destination.append(item.getIndexName()).append(", "); - destination.append(item.getQueryRankFeatureName()).append(')'); + destination.append(item.getQueryTensorName()).append(')'); return false; } diff --git a/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java b/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java index e191829b875..5eb1f3e3de1 100644 --- a/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java @@ -550,9 +550,9 @@ public class YqlParserTestCase { @Test public void testNearestNeighbor() { assertParse("select foo from bar where nearestNeighbor(semantic_embedding, my_vector);", - "NEAREST_NEIGHBOR {field=semantic_embedding,property=my_vector,targetNumHits=0}"); + "NEAREST_NEIGHBOR {field=semantic_embedding,queryTensorName=my_vector,targetNumHits=0}"); assertParse("select foo from bar where [{\"targetNumHits\": 37}]nearestNeighbor(semantic_embedding, my_vector);", - "NEAREST_NEIGHBOR {field=semantic_embedding,property=my_vector,targetNumHits=37}"); + "NEAREST_NEIGHBOR {field=semantic_embedding,queryTensorName=my_vector,targetNumHits=37}"); } @Test |