summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/prelude
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-03-27 17:12:05 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2021-03-27 17:12:05 +0100
commit4af4ba7da309f23bbc40ac32ed9c61f4dc9933e1 (patch)
tree897050ebbcda6154e107138d01e19cf332f0ada2 /container-search/src/main/java/com/yahoo/prelude
parent399b285d48bc5b6edacea793dd7a119458377c2c (diff)
- Add option to provide token map while construction wand/wset/dotproduct.
- Parse to number directly if possible.
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/DotProductItem.java3
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/WandItem.java13
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/WeightedSetItem.java14
3 files changed, 27 insertions, 3 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/DotProductItem.java b/container-search/src/main/java/com/yahoo/prelude/query/DotProductItem.java
index 455f81c8a90..ee41efd943c 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/DotProductItem.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/DotProductItem.java
@@ -1,6 +1,8 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.prelude.query;
+import java.util.Map;
+
/**
* A weighted set query item to be evaluated as a sparse dot product.
*
@@ -11,6 +13,7 @@ package com.yahoo.prelude.query;
public class DotProductItem extends WeightedSetItem {
public DotProductItem(String indexName) { super(indexName); }
+ public DotProductItem(String indexName, Map<Object, Integer> map) { super(indexName, map); }
@Override
public ItemType getItemType() { return ItemType.DOTPRODUCT; }
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/WandItem.java b/container-search/src/main/java/com/yahoo/prelude/query/WandItem.java
index 89e85fe8f12..8cce8fb5720 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/WandItem.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/WandItem.java
@@ -5,6 +5,7 @@ import com.yahoo.compress.IntegerCompressor;
import com.yahoo.prelude.query.textualrepresentation.Discloser;
import java.nio.ByteBuffer;
+import java.util.Map;
/**
* A weighted set query item to be evaluated as a Wand with dot product scoring.
@@ -33,6 +34,18 @@ public class WandItem extends WeightedSetItem {
}
/**
+ * Creates an empty WandItem.
+ *
+ * @param fieldName the name of the weighted set field to search with this WandItem.
+ * @param targetNumHits the target for minimum number of hits to produce by the backend search operator handling this WandItem.
+ * @param tokens the tokens to search for
+ */
+ public WandItem(String fieldName, int targetNumHits, Map<Object, Integer> tokens) {
+ super(fieldName, tokens);
+ this.targetNumHits = targetNumHits;
+ }
+
+ /**
* Sets the initial score threshold used by the backend search operator handling this WandItem.
* The score of a document must be larger than this threshold in order to be considered a match.
* Default value is 0.0.
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/WeightedSetItem.java b/container-search/src/main/java/com/yahoo/prelude/query/WeightedSetItem.java
index 0e74099174f..15354f5f7d3 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/WeightedSetItem.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/WeightedSetItem.java
@@ -25,9 +25,8 @@ import java.util.Map;
*/
public class WeightedSetItem extends SimpleTaggableItem {
- private String indexName = "";
-
- private CopyOnWriteHashMap<Object,Integer> set = new CopyOnWriteHashMap<>(1000);
+ private String indexName;
+ private CopyOnWriteHashMap<Object,Integer> set;
/** Creates an empty weighted set; note you must provide an index name up front */
public WeightedSetItem(String indexName) {
@@ -36,6 +35,15 @@ public class WeightedSetItem extends SimpleTaggableItem {
} else {
this.indexName = indexName;
}
+ set = new CopyOnWriteHashMap<>(1000);
+ }
+ public WeightedSetItem(String indexName, Map<Object, Integer> map) {
+ if (indexName == null) {
+ this.indexName = "";
+ } else {
+ this.indexName = indexName;
+ }
+ set = new CopyOnWriteHashMap<>(map);
}
public Integer addToken(long value, int weight) {