From 2e727510f09094faf433172f060b4f4d0f6a4cb2 Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Tue, 22 Mar 2022 22:11:37 +0100 Subject: Add MultiTermItem and MultiRangeItem, draft --- container-search/abi-spec.json | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) (limited to 'container-search/abi-spec.json') diff --git a/container-search/abi-spec.json b/container-search/abi-spec.json index 17b95162709..108ccdc02c2 100644 --- a/container-search/abi-spec.json +++ b/container-search/abi-spec.json @@ -899,6 +899,43 @@ ], "fields" : [ ] }, + "com.yahoo.prelude.query.MultiRangeItem$Limit": { + "superClass": "java.lang.Enum", + "interfaces": [], + "attributes": [ + "public", + "final", + "enum" + ], + "methods": [ + "public static com.yahoo.prelude.query.MultiRangeItem$Limit[] values()", + "public static com.yahoo.prelude.query.MultiRangeItem$Limit valueOf(java.lang.String)" + ], + "fields": [ + "public static final enum com.yahoo.prelude.query.MultiRangeItem$Limit INCLUSIVE", + "public static final enum com.yahoo.prelude.query.MultiRangeItem$Limit EXCLUSIVE" + ] + }, + "com.yahoo.prelude.query.MultiRangeItem": { + "superClass": "com.yahoo.prelude.query.MultiTermItem", + "interfaces": [], + "attributes": [ + "public" + ], + "methods": [ + "public static com.yahoo.prelude.query.MultiRangeItem overRanges(java.lang.String, com.yahoo.prelude.query.MultiRangeItem$Limit, java.lang.String, com.yahoo.prelude.query.MultiRangeItem$Limit)", + "public static com.yahoo.prelude.query.MultiRangeItem overPoints(java.lang.String, com.yahoo.prelude.query.MultiRangeItem$Limit, com.yahoo.prelude.query.MultiRangeItem$Limit)", + "public com.yahoo.prelude.query.MultiRangeItem add(java.lang.Number, java.lang.Number)", + "public void setIndexName(java.lang.String)", + "protected void appendBodyString(java.lang.StringBuilder)", + "public void disclose(com.yahoo.prelude.query.textualrepresentation.Discloser)", + "public com.yahoo.prelude.query.Item clone()", + "public boolean equals(java.lang.Object)", + "public int hashCode()", + "public bridge synthetic java.lang.Object clone()" + ], + "fields": [] + }, "com.yahoo.prelude.query.NearItem" : { "superClass" : "com.yahoo.prelude.query.CompositeItem", "interfaces" : [ ], @@ -8670,4 +8707,4 @@ ], "fields" : [ ] } -} \ No newline at end of file +} -- cgit v1.2.3 From a845add7c80c437d410a91da28dff6357304e748 Mon Sep 17 00:00:00 2001 From: jonmv Date: Thu, 13 Oct 2022 14:19:16 +0200 Subject: Rebase, change to JUnit5, update ABI spec --- container-search/abi-spec.json | 3 ++- .../src/main/java/com/yahoo/prelude/query/MultiRangeItem.java | 2 +- .../test/java/com/yahoo/prelude/query/MultiRangeItemTestCase.java | 7 +++---- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'container-search/abi-spec.json') diff --git a/container-search/abi-spec.json b/container-search/abi-spec.json index 108ccdc02c2..9b80279fa29 100644 --- a/container-search/abi-spec.json +++ b/container-search/abi-spec.json @@ -925,7 +925,8 @@ "methods": [ "public static com.yahoo.prelude.query.MultiRangeItem overRanges(java.lang.String, com.yahoo.prelude.query.MultiRangeItem$Limit, java.lang.String, com.yahoo.prelude.query.MultiRangeItem$Limit)", "public static com.yahoo.prelude.query.MultiRangeItem overPoints(java.lang.String, com.yahoo.prelude.query.MultiRangeItem$Limit, com.yahoo.prelude.query.MultiRangeItem$Limit)", - "public com.yahoo.prelude.query.MultiRangeItem add(java.lang.Number, java.lang.Number)", + "public com.yahoo.prelude.query.MultiRangeItem addPoint(java.lang.Number)", + "public com.yahoo.prelude.query.MultiRangeItem addRange(java.lang.Number, java.lang.Number)", "public void setIndexName(java.lang.String)", "protected void appendBodyString(java.lang.StringBuilder)", "public void disclose(com.yahoo.prelude.query.textualrepresentation.Discloser)", diff --git a/container-search/src/main/java/com/yahoo/prelude/query/MultiRangeItem.java b/container-search/src/main/java/com/yahoo/prelude/query/MultiRangeItem.java index 24d4623b2b8..27696b85da3 100644 --- a/container-search/src/main/java/com/yahoo/prelude/query/MultiRangeItem.java +++ b/container-search/src/main/java/com/yahoo/prelude/query/MultiRangeItem.java @@ -39,7 +39,7 @@ import static java.util.Objects.requireNonNull; * possible to achieve any matching by choosing inclusiveness for the query ranges properly. * For the case where document ranges are to be treated as exclusive, and the query has single points, this * becomes weird, since the ranges [1, 1), (1, 1] and (1, 1) are all logically empty, but this still works :) - * + *

* Unless ranges are added in ascending start order, the implementation lazily sorts and merges ranges, * when a representation of the item is required. This is typically when the query is serialized and sent * to the backend, or when trace information is written, or {@link #toString()} is called on the item. diff --git a/container-search/src/test/java/com/yahoo/prelude/query/MultiRangeItemTestCase.java b/container-search/src/test/java/com/yahoo/prelude/query/MultiRangeItemTestCase.java index b6227c9969d..b9ff28971d0 100644 --- a/container-search/src/test/java/com/yahoo/prelude/query/MultiRangeItemTestCase.java +++ b/container-search/src/test/java/com/yahoo/prelude/query/MultiRangeItemTestCase.java @@ -2,7 +2,7 @@ package com.yahoo.prelude.query; import com.yahoo.prelude.query.MultiRangeItem.Range; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.nio.ByteBuffer; import java.util.List; @@ -13,9 +13,8 @@ import static java.lang.Double.NEGATIVE_INFINITY; import static java.lang.Double.NaN; import static java.lang.Double.POSITIVE_INFINITY; import static java.util.Comparator.comparingDouble; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; /** * @author jonmv -- cgit v1.2.3 From f1f3dba5e56f7b0d074a5557fc8967e22a715b6e Mon Sep 17 00:00:00 2001 From: jonmv Date: Tue, 25 Oct 2022 13:25:30 +0200 Subject: Update ABI spec --- container-search/abi-spec.json | 29 ++++++++++++++++------ .../com/yahoo/prelude/query/MultiRangeItem.java | 2 +- .../com/yahoo/prelude/query/MultiTermItem.java | 2 +- 3 files changed, 23 insertions(+), 10 deletions(-) (limited to 'container-search/abi-spec.json') diff --git a/container-search/abi-spec.json b/container-search/abi-spec.json index 9b80279fa29..34530788732 100644 --- a/container-search/abi-spec.json +++ b/container-search/abi-spec.json @@ -916,15 +916,28 @@ "public static final enum com.yahoo.prelude.query.MultiRangeItem$Limit EXCLUSIVE" ] }, - "com.yahoo.prelude.query.MultiRangeItem": { - "superClass": "com.yahoo.prelude.query.MultiTermItem", - "interfaces": [], - "attributes": [ + "com.yahoo.prelude.query.MultiRangeItem$NumberType" : { + "superClass" : "java.lang.Object", + "interfaces" : [ ], + "attributes" : [ "public" ], - "methods": [ - "public static com.yahoo.prelude.query.MultiRangeItem overRanges(java.lang.String, com.yahoo.prelude.query.MultiRangeItem$Limit, java.lang.String, com.yahoo.prelude.query.MultiRangeItem$Limit)", - "public static com.yahoo.prelude.query.MultiRangeItem overPoints(java.lang.String, com.yahoo.prelude.query.MultiRangeItem$Limit, com.yahoo.prelude.query.MultiRangeItem$Limit)", + "methods" : [ ], + "fields" : [ + "public static final com.yahoo.prelude.query.MultiRangeItem$NumberType INTEGER", + "public static final com.yahoo.prelude.query.MultiRangeItem$NumberType LONG", + "public static final com.yahoo.prelude.query.MultiRangeItem$NumberType DOUBLE" + ] + }, + "com.yahoo.prelude.query.MultiRangeItem" : { + "superClass" : "com.yahoo.prelude.query.MultiTermItem", + "interfaces" : [ ], + "attributes" : [ + "public" + ], + "methods" : [ + "public static com.yahoo.prelude.query.MultiRangeItem overRanges(com.yahoo.prelude.query.MultiRangeItem$NumberType, java.lang.String, com.yahoo.prelude.query.MultiRangeItem$Limit, java.lang.String, com.yahoo.prelude.query.MultiRangeItem$Limit)", + "public static com.yahoo.prelude.query.MultiRangeItem overPoints(com.yahoo.prelude.query.MultiRangeItem$NumberType, java.lang.String, com.yahoo.prelude.query.MultiRangeItem$Limit, com.yahoo.prelude.query.MultiRangeItem$Limit)", "public com.yahoo.prelude.query.MultiRangeItem addPoint(java.lang.Number)", "public com.yahoo.prelude.query.MultiRangeItem addRange(java.lang.Number, java.lang.Number)", "public void setIndexName(java.lang.String)", @@ -935,7 +948,7 @@ "public int hashCode()", "public bridge synthetic java.lang.Object clone()" ], - "fields": [] + "fields" : [ ] }, "com.yahoo.prelude.query.NearItem" : { "superClass" : "com.yahoo.prelude.query.CompositeItem", diff --git a/container-search/src/main/java/com/yahoo/prelude/query/MultiRangeItem.java b/container-search/src/main/java/com/yahoo/prelude/query/MultiRangeItem.java index ff40b6f66bc..7ba7a13936f 100644 --- a/container-search/src/main/java/com/yahoo/prelude/query/MultiRangeItem.java +++ b/container-search/src/main/java/com/yahoo/prelude/query/MultiRangeItem.java @@ -324,7 +324,7 @@ public class MultiRangeItem extends MultiTermItem { } @Override - protected Item asCompositeItem() { + Item asCompositeItem() { OrItem root = new OrItem(); if (startIndex.equals(endIndex)) { for (Range range : sortedRanges()) { diff --git a/container-search/src/main/java/com/yahoo/prelude/query/MultiTermItem.java b/container-search/src/main/java/com/yahoo/prelude/query/MultiTermItem.java index 801eb861940..a7ca62d153c 100644 --- a/container-search/src/main/java/com/yahoo/prelude/query/MultiTermItem.java +++ b/container-search/src/main/java/com/yahoo/prelude/query/MultiTermItem.java @@ -48,7 +48,7 @@ abstract class MultiTermItem extends SimpleTaggableItem { /** Encode all wrapped terms to the buffer. */ abstract void encodeTerms(ByteBuffer buffer); - abstract protected Item asCompositeItem(); + abstract Item asCompositeItem(); @Override public final ItemType getItemType() { -- cgit v1.2.3