aboutsummaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2019-11-19 13:23:31 +0000
committerArne Juul <arnej@verizonmedia.com>2019-11-19 14:08:55 +0000
commit7d8c0ced9bbb71d00a9a6eae2f070ba685f20164 (patch)
tree72f5ecd91b7e19030d4eb286d4d193e07b2027d2 /container-search
parent8b5afa32df34cc3e65318515d6d71e416425b07b (diff)
updates after review
Diffstat (limited to 'container-search')
-rw-r--r--container-search/abi-spec.json4
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/NearestNeighborItem.java41
-rw-r--r--container-search/src/main/java/com/yahoo/search/searchers/ValidateNearestNeighborSearcher.java5
-rw-r--r--container-search/src/main/java/com/yahoo/search/yql/VespaSerializer.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java4
5 files changed, 29 insertions, 27 deletions
diff --git a/container-search/abi-spec.json b/container-search/abi-spec.json
index ddd754ce419..2a03614396b 100644
--- a/container-search/abi-spec.json
+++ b/container-search/abi-spec.json
@@ -855,10 +855,10 @@
"public"
],
"methods": [
+ "public void <init>(java.lang.String, java.lang.String)",
"public int getTargetNumHits()",
"public java.lang.String getIndexName()",
- "public java.lang.String getQueryRankFeatureName()",
- "public void <init>(java.lang.String, java.lang.String)",
+ "public java.lang.String getQueryTensorName()",
"public void setTargetNumHits(int)",
"public void setIndexName(java.lang.String)",
"public com.yahoo.prelude.query.Item$ItemType getItemType()",
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