diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-03-27 17:12:05 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-03-27 17:12:05 +0100 |
commit | 4af4ba7da309f23bbc40ac32ed9c61f4dc9933e1 (patch) | |
tree | 897050ebbcda6154e107138d01e19cf332f0ada2 /container-search/src/main/java/com/yahoo/prelude | |
parent | 399b285d48bc5b6edacea793dd7a119458377c2c (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')
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) { |