diff --git a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestOpticOnTriples.java b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestOpticOnTriples.java index 775ca884a..8fb75e477 100644 --- a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestOpticOnTriples.java +++ b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestOpticOnTriples.java @@ -12,14 +12,17 @@ import com.marklogic.client.io.JacksonHandle; import com.marklogic.client.io.StringHandle; import com.marklogic.client.row.RowManager; +import com.marklogic.client.row.RowRecord; +import com.marklogic.client.row.RowTemplate; import com.marklogic.client.type.*; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.*; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; import java.util.Iterator; +import static org.junit.jupiter.api.Assertions.*; + public class TestOpticOnTriples extends AbstractFunctionalTest { @BeforeAll @@ -1425,66 +1428,77 @@ public void testPatternValuePermutations() } @Test - public void testShortestPathWithColumnInputs() - { - if(!isML12OrHigher){ + void shortestPathWithColumnInputs() { + if (!isML12OrHigher) { return; } - RowManager rowMgr = client.newRowManager(); - PlanBuilder p = rowMgr.newPlanBuilder(); - - PlanColumn teamIdCol = p.col("player_team"); - PlanColumn teamNameCol = p.col("team_name"); - PlanColumn teamCityCol = p.col("team_city"); - - PlanPrefixer team = p.prefixer("http://marklogic.com/mlb/team/"); - PlanBuilder.ModifyPlan team_plan = p.fromTriples( - p.pattern(teamIdCol, team.iri("name"), teamNameCol), - p.pattern(teamIdCol, team.iri("city"), teamCityCol) - ).shortestPath(p.col("team_name"), p.col("team_city"), p.col("path"), p.col("length")); - JacksonHandle jacksonHandle = new JacksonHandle().withMimetype("application/json"); - rowMgr.resultDoc(team_plan, jacksonHandle); - JsonNode jsonResults = jacksonHandle.get(); - JsonNode jsonBindingsNodes = jsonResults.path("rows"); - for (int i=0; i { + PlanPrefixer team = op.prefixer("http://marklogic.com/mlb/team/"); + return op.fromTriples( + op.pattern(op.col("player_team"), team.iri("name"), op.col("team_name")), + op.pattern(op.col("player_team"), team.iri("city"), op.col("team_city")) + ) + .where(op.eq(op.col("team_name"), op.xs.string("Giants"))) + .shortestPath(op.col("team_name"), op.col("team_city"), op.col("path"), op.col("length")); + }, + rows -> { + RowRecord row = rows.iterator().next(); + assertEquals("Giants", row.getString("team_name")); + assertEquals("San Francisco", row.getString("team_city")); + assertEquals(1, row.getInt("length")); + return null; + }); } @Test - public void testShortestPathWithStringInputs() - { - if(!isML12OrHigher){ + void shortestPathWithStringInputs() { + if (!isML12OrHigher) { return; } - RowManager rowMgr = client.newRowManager(); - PlanBuilder p = rowMgr.newPlanBuilder(); - - PlanColumn teamIdCol = p.col("player_team"); - PlanColumn teamNameCol = p.col("team_name"); - PlanColumn teamCityCol = p.col("team_city"); - - PlanPrefixer team = p.prefixer("http://marklogic.com/mlb/team/"); - PlanBuilder.ModifyPlan team_plan = p.fromTriples( - p.pattern(teamIdCol, team.iri("name"), teamNameCol), - p.pattern(teamIdCol, team.iri("city"), teamCityCol) - ).shortestPath("team_name", "team_city", "path", "length"); - JacksonHandle jacksonHandle = new JacksonHandle().withMimetype("application/json"); - rowMgr.resultDoc(team_plan, jacksonHandle); - JsonNode jsonResults = jacksonHandle.get(); - JsonNode jsonBindingsNodes = jsonResults.path("rows"); - for (int i=0; i { + PlanPrefixer team = op.prefixer("http://marklogic.com/mlb/team/"); + return op.fromTriples( + op.pattern(op.col("player_team"), team.iri("name"), op.col("team_name")), + op.pattern(op.col("player_team"), team.iri("city"), op.col("team_city")) + ).shortestPath("team_name", "team_city", "path", "length"); + }, + rows -> { + rows.iterator().forEachRemaining(row -> { + assertNotNull(row.get("team_name")); + assertNotNull(row.get("team_city")); + assertNotNull(row.get("path")); + assertEquals("1", row.get("length").toString()); + }); + return null; + }); + } + + @Test + void shortestPathWithWeight() { + if (!isML12OrHigher) { + return; } + + new RowTemplate(client).query(op -> { + PlanPrefixer team = op.prefixer("http://marklogic.com/mlb/team/"); + return op.fromTriples( + op.pattern(op.col("player_team"), team.iri("name"), op.col("team_name")), + op.pattern(op.col("player_team"), team.iri("city"), op.col("team_city")) + ) + .where(op.eq(op.col("team_name"), op.xs.string("Giants"))) + .bind(op.as("weight", op.xs.doubleVal(0.5))) + // The effect of the 'weight' column is not relevant to the test; we just want to make sure a + // value can be passed without causing an error. + .shortestPath("team_name", "team_city", "path", "length", "weight"); + }, + rows -> { + RowRecord row = rows.iterator().next(); + assertEquals("Giants", row.getString("team_name")); + assertEquals("San Francisco", row.getString("team_city")); + assertEquals(1, row.getInt("length")); + return null; + }); } } diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/expression/CtsExpr.java b/marklogic-client-api/src/main/java/com/marklogic/client/expression/CtsExpr.java index 499aa6396..07137b72d 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/expression/CtsExpr.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/expression/CtsExpr.java @@ -48,7 +48,7 @@ public interface CtsExpr { * Returns a query matching fragments committed after a specified timestamp. * * - + *

* Provides a client interface to the cts:after-query server function. * @param timestamp A commit timestamp. Database fragments committed after this timestamp are matched. (of xs:unsignedLong) @@ -59,7 +59,7 @@ public interface CtsExpr { * Returns a query specifying the set difference of the matches specified by two sub-queries. * * - + *

* Provides a client interface to the cts:and-not-query server function. * @param positiveQuery A positive query, specifying the search results filtered in. (of cts:query) @@ -79,7 +79,7 @@ public interface CtsExpr { * Returns a query specifying the intersection of the matches specified by the sub-queries. * * - + *

* Provides a client interface to the cts:and-query server function. * @param queries A sequence of sub-queries. (of cts:query) @@ -108,7 +108,7 @@ public interface CtsExpr { * Returns a query matching fragments committed before or at a specified timestamp. * * - + *

* Provides a client interface to the cts:before-query server function. * @param timestamp A commit timestamp. Database fragments committed before this timestamp are matched. (of xs:unsignedLong) @@ -119,7 +119,7 @@ public interface CtsExpr { * Returns a query specifying that matches to matching-query should have their search relevance scores boosted if they also match boosting-query. * * - + *

* Provides a client interface to the cts:boost-query server function. * @param matchingQuery A sub-query that is used for match and scoring. (of cts:query) @@ -142,7 +142,7 @@ public interface CtsExpr { * Returns a geospatial box value. * * - + *

* Provides a client interface to the cts:box server function. * @param south The southern boundary of the box. (of xs:double) @@ -156,7 +156,7 @@ public interface CtsExpr { * Returns a box's eastern boundary. * * - + *

* Provides a client interface to the cts:box-east server function. * @param box The box. (of cts:box) @@ -167,7 +167,7 @@ public interface CtsExpr { * Returns a box's northern boundary. * * - + *

* Provides a client interface to the cts:box-north server function. * @param box The box. (of cts:box) @@ -178,7 +178,7 @@ public interface CtsExpr { * Returns a box's southern boundary. * * - + *

* Provides a client interface to the cts:box-south server function. * @param box The box. (of cts:box) @@ -189,7 +189,7 @@ public interface CtsExpr { * Returns a box's western boundary. * * - + *

* Provides a client interface to the cts:box-west server function. * @param box The box. (of cts:box) @@ -209,7 +209,7 @@ public interface CtsExpr { * Returns a geospatial circle value. * * - + *

* Provides a client interface to the cts:circle server function. * @param radius The radius of the circle. The units for the radius is determined at runtime by the query options (miles is currently the only option). (of xs:double) @@ -221,7 +221,7 @@ public interface CtsExpr { * Returns a circle's center point. * * - + *

* Provides a client interface to the cts:circle-center server function. * @param circle The circle. (of cts:circle) @@ -232,7 +232,7 @@ public interface CtsExpr { * Returns a circle's radius. * * - + *

* Provides a client interface to the cts:circle-radius server function. * @param circle The circle. (of cts:circle) @@ -251,7 +251,7 @@ public interface CtsExpr { * Match documents in at least one of the specified collections. It will match both documents and properties documents in the collections with the given URIs. * * - + *

* Provides a client interface to the cts:collection-query server function. * @param uris One or more collection URIs. A document matches the query if it is in at least one of these collections. (of xs:string) @@ -262,7 +262,7 @@ public interface CtsExpr { * Creates a reference to the collection lexicon, for use as a parameter to cts:value-tuples. Since lexicons are implemented with range indexes, this function will throw an exception if the specified range index does not exist. * * - + *

* Provides a client interface to the cts:collection-reference server function. * @return a server expression with the cts:reference server data type @@ -299,7 +299,7 @@ public interface CtsExpr { * Returns a cts:query matching documents matching a TDE-view column equals to an value. Searches with the cts:column-range-query constructor require the triple index; if the triple index is not configured, then an exception is thrown. * * - + *

* Provides a client interface to the cts:column-range-query server function. * @param schema The TDE schema name. (of xs:string) @@ -391,7 +391,7 @@ public interface CtsExpr { * Returns a geospatial complex polygon value. * * - + *

* Provides a client interface to the cts:complex-polygon server function. * @param outer The outer polygon. (of cts:polygon) @@ -411,7 +411,7 @@ public interface CtsExpr { * Returns a query matching documents in the directories with the given URIs. * * - + *

* Provides a client interface to the cts:directory-query server function. * @param uris One or more directory URIs. (of xs:string) @@ -448,7 +448,7 @@ public interface CtsExpr { * Returns a query matching documents of a given format. * * - + *

* Provides a client interface to the cts:document-format-query server function. * @param format Case insensitve one of: "json","xml","text","binary". This will result in a XDMP-ARG exception in case of an invalid format. (of xs:string) @@ -459,7 +459,7 @@ public interface CtsExpr { * Returns a query that matches all documents where query matches any document fragment. When searching documents, document-properties, or document-locks, this function provides a convenient way to additionally constrain the search against any document fragment. * * - + *

* Provides a client interface to the cts:document-fragment-query server function. * @param query A query to be matched against any document fragment. (of cts:query) @@ -479,7 +479,7 @@ public interface CtsExpr { * Returns a query matching documents with a given permission. * * - + *

* Provides a client interface to the cts:document-permission-query server function. * @param role The role of the permission (of xs:string) @@ -499,7 +499,7 @@ public interface CtsExpr { * Returns a query matching documents with the given URIs. It will match both documents and properties documents with the given URIs. * * - + *

* Provides a client interface to the cts:document-query server function. * @param uris One or more document URIs. (of xs:string) @@ -518,7 +518,7 @@ public interface CtsExpr { * Returns a query matching documents with a given root element. * * - + *

* Provides a client interface to the cts:document-root-query server function. * @param root The root QName to query. (of xs:QName) @@ -540,7 +540,7 @@ public interface CtsExpr { * Returns a query matching elements by name which has specific attributes representing latitude and longitude values for a point contained within the given geographic box, circle, or polygon, or equal to the given point. Points that lie between the southern boundary and the northern boundary of a box, travelling northwards, and between the western boundary and the eastern boundary of the box, travelling eastwards, will match. Points contained within the given radius of the center point of a circle will match, using the curved distance on the surface of the Earth. Points contained within the given polygon will match, using great circle arcs over a spherical model of the Earth as edges. An error may result if the polygon is malformed in some way. Points equal to the a given point will match, taking into account the fact that longitudes converge at the poles. Using the geospatial query constructors requires a valid geospatial license key; without a valid license key, searches that include geospatial queries will throw an exception. * * - + *

* Provides a client interface to the cts:element-attribute-pair-geospatial-query server function. * @param elementName One or more parent element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) @@ -615,7 +615,7 @@ public interface CtsExpr { * Constructs a query that matches element-attributes by name with a range-index entry equal to a given value. An element attribute range index on the specified QName(s) must exist when you use this query in a search; if no such range index exists, the search throws an exception. * * - + *

* Provides a client interface to the cts:element-attribute-range-query server function. * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) @@ -688,7 +688,7 @@ public interface CtsExpr { * Creates a reference to an element attribute value lexicon, for use as a parameter to cts:value-tuples. Since lexicons are implemented with range indexes, this function will throw an exception if the specified range index does not exist. * * - + *

* Provides a client interface to the cts:element-attribute-reference server function. * @param element An element QName. (of xs:QName) @@ -730,7 +730,7 @@ public interface CtsExpr { * Returns a query matching elements by name with attributes by name with text content equal a given phrase. * * - + *

* Provides a client interface to the cts:element-attribute-value-query server function. * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) @@ -746,7 +746,7 @@ public interface CtsExpr { * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) * @param attributeName One or more attribute QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) * @param text One or more attribute values to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). * "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). (of xs:string) * @return a server expression with the cts:query server data type */ public CtsQueryExpr elementAttributeValueQuery(String elementName, String attributeName, String text, String... options); @@ -757,7 +757,7 @@ public interface CtsExpr { * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) * @param attributeName One or more attribute QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) * @param text One or more attribute values to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). * "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). (of xs:string) * @return a server expression with the cts:query server data type */ public CtsQueryExpr elementAttributeValueQuery(ServerExpression elementName, ServerExpression attributeName, ServerExpression text, ServerExpression options); @@ -768,7 +768,7 @@ public interface CtsExpr { * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) * @param attributeName One or more attribute QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) * @param text One or more attribute values to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). * "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). (of xs:string) * @param weight A weight for this query. Higher weights move search results up in the relevance order. The default is 1.0. The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. Weights less than the absolute value of 0.0625 (between -0.0625 and 0.0625) are rounded to 0, which means that they do not contribute to the score. (of xs:double) * @return a server expression with the cts:query server data type */ @@ -780,7 +780,7 @@ public interface CtsExpr { * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) * @param attributeName One or more attribute QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) * @param text One or more attribute values to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). * "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). (of xs:string) * @param weight A weight for this query. Higher weights move search results up in the relevance order. The default is 1.0. The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. Weights less than the absolute value of 0.0625 (between -0.0625 and 0.0625) are rounded to 0, which means that they do not contribute to the score. (of xs:double) * @return a server expression with the cts:query server data type */ @@ -799,7 +799,7 @@ public interface CtsExpr { * Returns a query matching elements by name with attributes by name with text content containing a given phrase. * * - + *

* Provides a client interface to the cts:element-attribute-word-query server function. * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) @@ -868,7 +868,7 @@ public interface CtsExpr { * Returns a query matching elements by name which has specific element children representing latitude and longitude values for a point contained within the given geographic box, circle, or polygon, or equal to the given point. Points that lie between the southern boundary and the northern boundary of a box, travelling northwards, and between the western boundary and the eastern boundary of the box, travelling eastwards, will match. Points contained within the given radius of the center point of a circle will match, using the curved distance on the surface of the Earth. Points contained within the given polygon will match, using great circle arcs over a spherical model of the Earth as edges. An error may result if the polygon is malformed in some way. Points equal to the a given point will match, taking into account the fact that longitudes converge at the poles. Using the geospatial query constructors requires a valid geospatial license key; without a valid license key, searches that include geospatial queries will throw an exception. * * - + *

* Provides a client interface to the cts:element-child-geospatial-query server function. * @param elementName One or more parent element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) @@ -936,7 +936,7 @@ public interface CtsExpr { * Returns a query matching elements by name whose content represents a point contained within the given geographic box, circle, or polygon, or equal to the given point. Points that lie between the southern boundary and the northern boundary of a box, travelling northwards, and between the western boundary and the eastern boundary of the box, travelling eastwards, will match. Points contained within the given radius of the center point of a circle will match, using the curved distance on the surface of the Earth. Points contained within the given polygon will match, using great circle arcs over a spherical model of the Earth as edges. An error may result if the polygon is malformed in some way. Points equal to the a given point will match, taking into account the fact that longitudes converge at the poles. Using the geospatial query constructors requires a valid geospatial license key; without a valid license key, searches that include geospatial queries will throw an exception. * * - + *

* Provides a client interface to the cts:element-geospatial-query server function. * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) @@ -1001,7 +1001,7 @@ public interface CtsExpr { * Returns a query matching elements by name which has specific element children representing latitude and longitude values for a point contained within the given geographic box, circle, or polygon, or equal to the given point. Points that lie between the southern boundary and the northern boundary of a box, travelling northwards, and between the western boundary and the eastern boundary of the box, travelling eastwards, will match. Points contained within the given radius of the center point of a circle will match, using the curved distance on the surface of the Earth. Points contained within the given polygon will match, using great circle arcs over a spherical model of the Earth as edges. An error may result if the polygon is malformed in some way. Points equal to the a given point will match, taking into account the fact that longitudes converge at the poles. Using the geospatial query constructors requires a valid geospatial license key; without a valid license key, searches that include geospatial queries will throw an exception. * * - + *

* Provides a client interface to the cts:element-pair-geospatial-query server function. * @param elementName One or more parent element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) @@ -1074,7 +1074,7 @@ public interface CtsExpr { * Constructs a query that matches elements by name with the content constrained by the query given in the second parameter. Searches for matches in the specified element and all of its descendants. If the query specified in the second parameter includes any element attribute sub-queries, it will search attributes on the specified element and attributes on any descendant elements. See the second example below). * * - + *

* Provides a client interface to the cts:element-query server function. * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) @@ -1096,7 +1096,7 @@ public interface CtsExpr { * Constructs a query that matches elements by name with range index entry equal to a given value. Searches that use an element range query require an element range index on the specified QName(s); if no such range index exists, then an exception is thrown. * * - + *

* Provides a client interface to the cts:element-range-query server function. * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) @@ -1163,7 +1163,7 @@ public interface CtsExpr { * Creates a reference to an element value lexicon, for use as a parameter to cts:value-tuples, temporal:axis-create, or any other function that takes an index reference. Since lexicons are implemented with range indexes, this function will throw an exception if the specified range index does not exist. * * - + *

* Provides a client interface to the cts:element-reference server function. * @param element An element QName. (of xs:QName) @@ -1200,7 +1200,7 @@ public interface CtsExpr { * Returns a query matching elements by name with text content equal a given phrase. cts:element-value-query only matches against simple elements (that is, elements that contain only text and have no element children). * * - + *

* Provides a client interface to the cts:element-value-query server function. * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) @@ -1231,7 +1231,7 @@ public interface CtsExpr { * Provides a client interface to the cts:element-value-query server function. * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) * @param text One or more element values to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). (of xs:string) * @return a server expression with the cts:query server data type */ public CtsQueryExpr elementValueQuery(String elementName, String text, String... options); @@ -1241,7 +1241,7 @@ public interface CtsExpr { * Provides a client interface to the cts:element-value-query server function. * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) * @param text One or more element values to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). (of xs:string) * @return a server expression with the cts:query server data type */ public CtsQueryExpr elementValueQuery(ServerExpression elementName, ServerExpression text, ServerExpression options); @@ -1251,7 +1251,7 @@ public interface CtsExpr { * Provides a client interface to the cts:element-value-query server function. * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) * @param text One or more element values to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). (of xs:string) * @param weight A weight for this query. Higher weights move search results up in the relevance order. The default is 1.0. The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. Weights less than the absolute value of 0.0625 (between -0.0625 and 0.0625) are rounded to 0, which means that they do not contribute to the score. (of xs:double) * @return a server expression with the cts:query server data type */ @@ -1262,7 +1262,7 @@ public interface CtsExpr { * Provides a client interface to the cts:element-value-query server function. * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) * @param text One or more element values to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). (of xs:string) * @param weight A weight for this query. Higher weights move search results up in the relevance order. The default is 1.0. The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. Weights less than the absolute value of 0.0625 (between -0.0625 and 0.0625) are rounded to 0, which means that they do not contribute to the score. (of xs:double) * @return a server expression with the cts:query server data type */ @@ -1280,7 +1280,7 @@ public interface CtsExpr { * Returns a query matching elements by name with text content containing a given phrase. Searches only through immediate text node children of the specified element as well as any text node children of child elements defined in the Admin Interface as element-word-query-throughs or phrase-throughs; does not search through any other children of the specified element. If neither word searches nor stemmed word searches is enabled for the target database, an XDMP-SEARCH error is thrown. * * - + *

* Provides a client interface to the cts:element-word-query server function. * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) @@ -1294,7 +1294,7 @@ public interface CtsExpr { * Provides a client interface to the cts:element-word-query server function. * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) * @param text Some words or phrases to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. * "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. "no-limit-check" is default, if neither "limit-check" nor "no-limit-check" is explicitly specified. (of xs:string) * @return a server expression with the cts:query server data type */ public CtsQueryExpr elementWordQuery(String elementName, String text, String... options); @@ -1304,7 +1304,7 @@ public interface CtsExpr { * Provides a client interface to the cts:element-word-query server function. * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) * @param text Some words or phrases to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. * "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. "no-limit-check" is default, if neither "limit-check" nor "no-limit-check" is explicitly specified. (of xs:string) * @return a server expression with the cts:query server data type */ public CtsQueryExpr elementWordQuery(ServerExpression elementName, ServerExpression text, ServerExpression options); @@ -1314,7 +1314,7 @@ public interface CtsExpr { * Provides a client interface to the cts:element-word-query server function. * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) * @param text Some words or phrases to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. * "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. "no-limit-check" is default, if neither "limit-check" nor "no-limit-check" is explicitly specified. (of xs:string) * @param weight A weight for this query. Higher weights move search results up in the relevance order. The default is 1.0. The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. Weights less than the absolute value of 0.0625 (between -0.0625 and 0.0625) are rounded to 0, which means that they do not contribute to the score. (of xs:double) * @return a server expression with the cts:query server data type */ @@ -1325,7 +1325,7 @@ public interface CtsExpr { * Provides a client interface to the cts:element-word-query server function. * @param elementName One or more element QNames to match. When multiple QNames are specified, the query matches if any QName matches. (of xs:QName) * @param text Some words or phrases to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. * "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. "no-limit-check" is default, if neither "limit-check" nor "no-limit-check" is explicitly specified. (of xs:string) * @param weight A weight for this query. Higher weights move search results up in the relevance order. The default is 1.0. The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. Weights less than the absolute value of 0.0625 (between -0.0625 and 0.0625) are rounded to 0, which means that they do not contribute to the score. (of xs:double) * @return a server expression with the cts:query server data type */ @@ -1334,7 +1334,7 @@ public interface CtsExpr { * Returns a query that matches no fragments. * * - + *

* Provides a client interface to the cts:false-query server function. * @return a server expression with the cts:query server data type @@ -1354,7 +1354,7 @@ public interface CtsExpr { * Returns a cts:query matching fields by name with a range-index entry equal to a given value. Searches with the cts:field-range-query constructor require a field range index on the specified field name(s); if there is no range index configured, then an exception is thrown. * * - + *

* Provides a client interface to the cts:field-range-query server function. * @param fieldName One or more field names to match. When multiple field names are specified, the query matches if any field name matches. (of xs:string) @@ -1421,7 +1421,7 @@ public interface CtsExpr { * Creates a reference to a field value lexicon, for use as a parameter to cts:value-tuples. Since lexicons are implemented with range indexes, this function will throw an exception if the specified range index does not exist. * * - + *

* Provides a client interface to the cts:field-reference server function. * @param field A field name. (of xs:string) @@ -1459,7 +1459,7 @@ public interface CtsExpr { * Returns a query matching text content containing a given value in the specified field. If the specified field does not exist, cts:field-value-query throws an exception. If the specified field does not have the index setting field value searches enabled, either for the database or for the specified field, then a cts:search with a cts:field-value-query throws an exception. A field is a named object that specified elements to include and exclude from a search, and can include score weights for any included elements. You create fields at the database level using the Admin Interface. For details on fields, see the chapter on "Fields Database Settings" in the Administrator's Guide. * * - + *

* Provides a client interface to the cts:field-value-query server function. * @param fieldName One or more field names to search over. If multiple field names are supplied, the match can be in any of the specified fields (or-query semantics). (of xs:string) @@ -1522,7 +1522,7 @@ public interface CtsExpr { * Returns a query matching fields with text content containing a given phrase. If the specified field does not exist, this function throws an exception. A field is a named object that specified elements to include and exclude from a search, and can include score weights for any included elements. You create fields at the database level using the Admin Interface. For details on fields, see the chapter on "Fields Database Settings" in the Administrator's Guide. * * - + *

* Provides a client interface to the cts:field-word-query server function. * @param fieldName One or more field names to search over. If multiple field names are supplied, the match can be in any of the specified fields (or-query semantics). (of xs:string) @@ -1584,7 +1584,7 @@ public interface CtsExpr { * Creates a reference to a geospatial path range index, for use as a parameter to cts:value-tuples. This function will throw an exception if the specified range index does not exist. * * - + *

* Provides a client interface to the cts:geospatial-path-reference server function. * @param pathExpression A path expression. (of xs:string) @@ -1641,7 +1641,7 @@ public interface CtsExpr { * Create a reference to a geospatial region path index, for use as a parameter to cts:geospatial-region-query and other query operations on geospatial region indexes. This function throws an exception if the specified region path index does not exist. * * - + *

* Provides a client interface to the cts:geospatial-region-path-reference server function. * @param pathExpression The XPath expression specified in the index configuration. (of xs:string) @@ -1772,7 +1772,7 @@ public interface CtsExpr { * Construct a query to match regions in documents that satisfy a specified relationship relative to other regions. For example, regions in documents that intersect with regions specified in the search criteria. * * - + *

* Provides a client interface to the cts:geospatial-region-query server function. * @param reference Zero or more geospatial path region index references that identify regions in your content. To create a reference, see cts:geospatial-region-path-reference. (of cts:reference) @@ -1831,7 +1831,7 @@ public interface CtsExpr { * Creates a reference to the URI lexicon, for use as a parameter to cts:value-tuples. This function requires the URI lexicon to be enabled, otherwise it throws an exception. This reference returns URIs as IRIs. * * - + *

* Provides a client interface to the cts:iri-reference server function. * @return a server expression with the cts:reference server data type @@ -1851,7 +1851,7 @@ public interface CtsExpr { * Returns a query matching json properties by name which has specific children representing latitude and longitude values for a point contained within the given geographic box, circle, or polygon, or equal to the given point. Points that lie between the southern boundary and the northern boundary of a box, travelling northwards, and between the western boundary and the eastern boundary of the box, travelling eastwards, will match. Points contained within the given radius of the center point of a circle will match, using the curved distance on the surface of the Earth. Points contained within the given polygon will match, using great circle arcs over a spherical model of the Earth as edges. An error may result if the polygon is malformed in some way. Points equal to the a given point will match, taking into account the fact that longitudes converge at the poles. Using the geospatial query constructors requires a valid geospatial license key; without a valid license key, searches that include geospatial queries will throw an exception. * * - + *

* Provides a client interface to the cts:json-property-child-geospatial-query server function. * @param propertyName One or more parent property names to match. When multiple names are specified, the query matches if any name matches. (of xs:string) @@ -1919,7 +1919,7 @@ public interface CtsExpr { * Returns a query matching json properties by name whose content represents a point contained within the given geographic box, circle, or polygon, or equal to the given point. Points that lie between the southern boundary and the northern boundary of a box, travelling northwards, and between the western boundary and the eastern boundary of the box, travelling eastwards, will match. Points contained within the given radius of the center point of a circle will match, using the curved distance on the surface of the Earth. Points contained within the given polygon will match, using great circle arcs over a spherical model of the Earth as edges. An error may result if the polygon is malformed in some way. Points equal to the a given point will match, taking into account the fact that longitudes converge at the poles. Using the geospatial query constructors requires a valid geospatial license key; without a valid license key, searches that include geospatial queries will throw an exception. * * - + *

* Provides a client interface to the cts:json-property-geospatial-query server function. * @param propertyName One or more json property names to match. When multiple names are specified, the query matches if any name matches. (of xs:string) @@ -1984,7 +1984,7 @@ public interface CtsExpr { * Returns a query matching json properties by name which has specific property children representing latitude and longitude values for a point contained within the given geographic box, circle, or polygon, or equal to the given point. Points that lie between the southern boundary and the northern boundary of a box, travelling northwards, and between the western boundary and the eastern boundary of the box, travelling eastwards, will match. Points contained within the given radius of the center point of a circle will match, using the curved distance on the surface of the Earth. Points contained within the given polygon will match, using great circle arcs over a spherical model of the Earth as edges. An error may result if the polygon is malformed in some way. Points equal to the a given point will match, taking into account the fact that longitudes converge at the poles. Using the geospatial query constructors requires a valid geospatial license key; without a valid license key, searches that include geospatial queries will throw an exception. * * - + *

* Provides a client interface to the cts:json-property-pair-geospatial-query server function. * @param propertyName One or more parent property names to match. When multiple names are specified, the query matches if any name matches. (of xs:string) @@ -2058,7 +2058,7 @@ public interface CtsExpr { * Returns a cts:query matching JSON properties by name with a range-index entry equal to a given value. Searches with the cts:json-property-range-query constructor require a property range index on the specified names; if there is no range index configured, then an exception is thrown. * * - + *

* Provides a client interface to the cts:json-property-range-query server function. * @param propertyName One or more property name to match. When multiple names are specified, the query matches if any name matches. (of xs:string) @@ -2125,7 +2125,7 @@ public interface CtsExpr { * Creates a reference to a JSON property value lexicon, for use as a parameter to cts:value-tuples. Since lexicons are implemented with range indexes, this function will throw an exception if the specified range index does not exist. * * - + *

* Provides a client interface to the cts:json-property-reference server function. * @param property A property name. (of xs:string) @@ -2163,7 +2163,7 @@ public interface CtsExpr { * Returns a cts:query matching JSON properties by name with the content constrained by the given cts:query in the second parameter. Searches for matches in the specified property and all of its descendants. * * - + *

* Provides a client interface to the cts:json-property-scope-query server function. * @param propertyName One or more property names to match. When multiple names are specified, the query matches if any name matches. (of xs:string) @@ -2184,7 +2184,7 @@ public interface CtsExpr { * Returns a query matching JSON properties by name with value equal the given value. For arrays, the query matches if the value of any elements in the array matches the given value. * * - + *

* Provides a client interface to the cts:json-property-value-query server function. * @param propertyName One or more property names to match. When multiple names are specified, the query matches if any name matches. (of xs:string) @@ -2198,7 +2198,7 @@ public interface CtsExpr { * Provides a client interface to the cts:json-property-value-query server function. * @param propertyName One or more property names to match. When multiple names are specified, the query matches if any name matches. (of xs:string) * @param value One or more property values to match. When multiple values are specified, the query matches if any value matches. The values can be strings, numbers or booleans to match correspondingly typed nodes. If the value is the empty sequence, the query matches null. (of xs:anyAtomicType) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). (of xs:string) * @return a server expression with the cts:query server data type */ public CtsQueryExpr jsonPropertyValueQuery(String propertyName, String value, String... options); @@ -2208,7 +2208,7 @@ public interface CtsExpr { * Provides a client interface to the cts:json-property-value-query server function. * @param propertyName One or more property names to match. When multiple names are specified, the query matches if any name matches. (of xs:string) * @param value One or more property values to match. When multiple values are specified, the query matches if any value matches. The values can be strings, numbers or booleans to match correspondingly typed nodes. If the value is the empty sequence, the query matches null. (of xs:anyAtomicType) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). (of xs:string) * @return a server expression with the cts:query server data type */ public CtsQueryExpr jsonPropertyValueQuery(ServerExpression propertyName, ServerExpression value, ServerExpression options); @@ -2218,7 +2218,7 @@ public interface CtsExpr { * Provides a client interface to the cts:json-property-value-query server function. * @param propertyName One or more property names to match. When multiple names are specified, the query matches if any name matches. (of xs:string) * @param value One or more property values to match. When multiple values are specified, the query matches if any value matches. The values can be strings, numbers or booleans to match correspondingly typed nodes. If the value is the empty sequence, the query matches null. (of xs:anyAtomicType) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). (of xs:string) * @param weight A weight for this query. Higher weights move search results up in the relevance order. The default is 1.0. The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. Weights less than the absolute value of 0.0625 (between -0.0625 and 0.0625) are rounded to 0, which means that they do not contribute to the score. (of xs:double) * @return a server expression with the cts:query server data type */ @@ -2229,7 +2229,7 @@ public interface CtsExpr { * Provides a client interface to the cts:json-property-value-query server function. * @param propertyName One or more property names to match. When multiple names are specified, the query matches if any name matches. (of xs:string) * @param value One or more property values to match. When multiple values are specified, the query matches if any value matches. The values can be strings, numbers or booleans to match correspondingly typed nodes. If the value is the empty sequence, the query matches null. (of xs:anyAtomicType) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). (of xs:string) * @param weight A weight for this query. Higher weights move search results up in the relevance order. The default is 1.0. The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. Weights less than the absolute value of 0.0625 (between -0.0625 and 0.0625) are rounded to 0, which means that they do not contribute to the score. (of xs:double) * @return a server expression with the cts:query server data type */ @@ -2247,7 +2247,7 @@ public interface CtsExpr { * Returns a query matching JSON properties by name with text content containing a given phrase. Searches only through immediate text node children of the specified property. * * - + *

* Provides a client interface to the cts:json-property-word-query server function. * @param propertyName One or more JSON property names to match. When multiple names are specified, the query matches if any name matches. (of xs:string) @@ -2261,7 +2261,7 @@ public interface CtsExpr { * Provides a client interface to the cts:json-property-word-query server function. * @param propertyName One or more JSON property names to match. When multiple names are specified, the query matches if any name matches. (of xs:string) * @param text Some words or phrases to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. * "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. "no-limit-check" is default, if neither "limit-check" nor "no-limit-check" is explicitly specified. (of xs:string) * @return a server expression with the cts:query server data type */ public CtsQueryExpr jsonPropertyWordQuery(String propertyName, String text, String... options); @@ -2271,7 +2271,7 @@ public interface CtsExpr { * Provides a client interface to the cts:json-property-word-query server function. * @param propertyName One or more JSON property names to match. When multiple names are specified, the query matches if any name matches. (of xs:string) * @param text Some words or phrases to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. * "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. "no-limit-check" is default, if neither "limit-check" nor "no-limit-check" is explicitly specified. (of xs:string) * @return a server expression with the cts:query server data type */ public CtsQueryExpr jsonPropertyWordQuery(ServerExpression propertyName, ServerExpression text, ServerExpression options); @@ -2281,7 +2281,7 @@ public interface CtsExpr { * Provides a client interface to the cts:json-property-word-query server function. * @param propertyName One or more JSON property names to match. When multiple names are specified, the query matches if any name matches. (of xs:string) * @param text Some words or phrases to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. * "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. "no-limit-check" is default, if neither "limit-check" nor "no-limit-check" is explicitly specified. (of xs:string) * @param weight A weight for this query. Higher weights move search results up in the relevance order. The default is 1.0. The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. Weights less than the absolute value of 0.0625 (between -0.0625 and 0.0625) are rounded to 0, which means that they do not contribute to the score. (of xs:double) * @return a server expression with the cts:query server data type */ @@ -2292,7 +2292,7 @@ public interface CtsExpr { * Provides a client interface to the cts:json-property-word-query server function. * @param propertyName One or more JSON property names to match. When multiple names are specified, the query matches if any name matches. (of xs:string) * @param text Some words or phrases to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. * "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. "no-limit-check" is default, if neither "limit-check" nor "no-limit-check" is explicitly specified. (of xs:string) * @param weight A weight for this query. Higher weights move search results up in the relevance order. The default is 1.0. The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. Weights less than the absolute value of 0.0625 (between -0.0625 and 0.0625) are rounded to 0, which means that they do not contribute to the score. (of xs:double) * @return a server expression with the cts:query server data type */ @@ -2301,7 +2301,7 @@ public interface CtsExpr { * Returns a geospatial linestring value. *

* Provides a client interface to the cts:linestring server function. - * @param vertices The waypoints of the linestring, given in order. vertexes. (of xs:anyAtomicType) + * @param vertices The waypoints of the linestring, given in order. Alternatively, the vertices may be provided as a string that follows the well-known text (WKT) scheme for a linestring. (of xs:anyAtomicType) * @return a server expression with the cts:linestring server data type */ public ServerExpression linestring(String vertices); @@ -2309,10 +2309,10 @@ public interface CtsExpr { * Returns a geospatial linestring value. * * - + *

* Provides a client interface to the cts:linestring server function. - * @param vertices The waypoints of the linestring, given in order. vertexes. (of xs:anyAtomicType) + * @param vertices The waypoints of the linestring, given in order. Alternatively, the vertices may be provided as a string that follows the well-known text (WKT) scheme for a linestring. (of xs:anyAtomicType) * @return a server expression with the cts:linestring server data type */ public ServerExpression linestring(ServerExpression vertices); @@ -2320,7 +2320,7 @@ public interface CtsExpr { * Returns a query that matches all documents where query matches document-locks. When searching documents or document-properties, cts:locks-fragment-query provides a convenient way to additionally constrain the search against document-locks fragments. * * - + *

* Provides a client interface to the cts:locks-fragment-query server function. * @param query A query to be matched against the locks fragment. (of cts:query) @@ -2339,7 +2339,7 @@ public interface CtsExpr { * Returns only documents before LSQT or a timestamp before LSQT for stable query results. * * - + *

* Provides a client interface to the cts:lsqt-query server function. * @param temporalCollection The name of the temporal collection. (of xs:string) @@ -2418,7 +2418,7 @@ public interface CtsExpr { * Returns a query matching all of the specified queries, where the matches occur within the specified distance from each other. * * - + *

* Provides a client interface to the cts:near-query server function. * @param queries A sequence of queries to match. (of cts:query) @@ -2489,7 +2489,7 @@ public interface CtsExpr { * Returns a query matching the first sub-query, where those matches do not occur within 0 distance of the other query. * * - + *

* Provides a client interface to the cts:not-in-query server function. * @param positiveQuery A positive query, specifying the search results filtered in. (of cts:query) @@ -2501,7 +2501,7 @@ public interface CtsExpr { * Returns a query specifying the matches not specified by its sub-query. * * - + *

* Provides a client interface to the cts:not-query server function. * @param query A negative query, specifying the search results to filter out. (of cts:query) @@ -2520,7 +2520,7 @@ public interface CtsExpr { * Returns a query specifying the union of the matches specified by the sub-queries. * * - + *

* Provides a client interface to the cts:or-query server function. * @param queries A sequence of sub-queries. (of cts:query) @@ -2549,7 +2549,7 @@ public interface CtsExpr { * Returns the part of speech for a cts:token, if any. * * - + *

* Provides a client interface to the cts:part-of-speech server function. * @param token A token, as returned from cts:tokenize. (of xs:string) @@ -2569,7 +2569,7 @@ public interface CtsExpr { * Returns a query matching path expressions whose content represents a point contained within the given geographic box, circle, or polygon, or equal to the given point. Points that lie between the southern boundary and the northern boundary of a box, travelling northwards, and between the western boundary and the eastern boundary of the box, travelling eastwards, will match. Points contained within the given radius of the center point of a circle will match, using the curved distance on the surface of the Earth. Points contained within the given polygon will match, using great circle arcs over a spherical model of the Earth as edges. An error may result if the polygon is malformed in some way. Points equal to the a given point will match, taking into account the fact that longitudes converge at the poles. Using the geospatial query constructors requires a valid geospatial license key; without a valid license key, searches that include geospatial queries will throw an exception. * * - + *

* Provides a client interface to the cts:path-geospatial-query server function. * @param pathExpression One or more path expressions to match. When multiple path expressions are specified, the query matches if any path expression matches. (of xs:string) @@ -2633,7 +2633,7 @@ public interface CtsExpr { * Returns a cts:query matching documents where the content addressed by an XPath expression satisfies the specified relationship (=, <, >, etc.) with respect to the input criteria values. A path range index must exist for each path when you perform a search. * * - + *

* Provides a client interface to the cts:path-range-query server function. * @param pathName One or more XPath expressions that identify the content to match. When multiple paths are specified, the query matches if any path matches. (of xs:string) @@ -2700,7 +2700,7 @@ public interface CtsExpr { * Creates a reference to a path value lexicon, for use as a parameter to cts:value-tuples. Since lexicons are implemented with range indexes, this function will throw an exception if the specified range index does not exist. * * - + *

* Provides a client interface to the cts:path-reference server function. * @param pathExpression A path range index expression. (of xs:string) @@ -2758,7 +2758,7 @@ public interface CtsExpr { * Creates a period value, for use as a parameter to cts:period-range-query or cts:period-compare-query. * * - + *

* Provides a client interface to the cts:period server function. * @param start The dateTime value indicating start of the period. (of xs:dateTime) @@ -2780,7 +2780,7 @@ public interface CtsExpr { * Returns a cts:query matching documents that have relevant pair of period values. Searches with the cts:period-compare-query constructor require two valid names of period, if the either of the specified period does not exist, then an exception is thrown. * * - + *

* Provides a client interface to the cts:period-compare-query server function. * @param axis1 Name of the first axis to compare (of xs:string) @@ -2824,7 +2824,7 @@ public interface CtsExpr { * Returns a cts:query matching axis by name with a period value with an operator. Searches with the cts:period-range-query constructor require a axis definition on the axis name; if there is no axis configured, then an exception is thrown. * * - + *

* Provides a client interface to the cts:period-range-query server function. * @param axis One or more axis to match on. (of xs:string) @@ -2894,19 +2894,19 @@ public interface CtsExpr { * Returns a point value. * * - + *

* Provides a client interface to the cts:point server function. - * @param latitude The latitude of the point. (of xs:double) - * @param longitude The longitude of the point. (of xs:double) + * @param latitudeOrWkt The latitude of the point. Alternatively, the vertex may be provided as a string that follows the well-known text (WKT) scheme for a point. (of xs:double) + * @param longitude The longitude of the point. If you supply a WKT string as latitude, this parameter must not be supplied. (of xs:double) * @return a server expression with the cts:point server data type */ - public CtsPointExpr point(ServerExpression latitude, ServerExpression longitude); + public CtsPointExpr point(ServerExpression latitudeOrWkt, ServerExpression longitude); /** * Returns a point's latitude value. * * - + *

* Provides a client interface to the cts:point-latitude server function. * @param point The point. (of cts:point) @@ -2917,7 +2917,7 @@ public interface CtsExpr { * Returns a point's longitude value. * * - + *

* Provides a client interface to the cts:point-longitude server function. * @param point The point. (of cts:point) @@ -2945,7 +2945,7 @@ public interface CtsExpr { * Returns a query that matches all documents where query matches document-properties. When searching documents or document-locks, this query type provides a convenient way to additionally constrain the search against document-properties fragments. * * - + *

* Provides a client interface to the cts:properties-fragment-query server function. * @param query A query to be matched against the properties fragment. (of cts:query) @@ -2966,7 +2966,7 @@ public interface CtsExpr { * Returns a cts:query matching specified nodes with a range-index entry compared to a given value. Searches with the cts:range-query constructor require a range index; if there is no range index configured, then an exception is thrown. * * - + *

* Provides a client interface to the cts:range-query server function. * @param index One or more range index references. When multiple indexes are specified, the query matches if any index matches. (of cts:reference) @@ -3025,7 +3025,7 @@ public interface CtsExpr { * Returns the stem(s) for a word. * * - + *

* Provides a client interface to the cts:stem server function. * @param text A word or phrase to stem. (of xs:string) @@ -3074,7 +3074,7 @@ public interface CtsExpr { * Tokenizes text into words, punctuation, and spaces. Returns output in the type cts:token, which has subtypes cts:word, cts:punctuation, and cts:space, all of which are subtypes of xs:string. * * - + *

* Provides a client interface to the cts:tokenize server function. * @param text A word or phrase to tokenize. (of xs:string) @@ -3133,7 +3133,7 @@ public interface CtsExpr { * Returns a cts:query matching triples with a triple index entry equal to the given values. Searches with the cts:triple-range-query constructor require the triple index; if the triple index is not configured, then an exception is thrown. * * - + *

* Provides a client interface to the cts:triple-range-query server function. * @param subject The subjects to look up. When multiple values are specified, the query matches if any value matches. When the empty sequence is specified, then triples with any subject are matched. (of xs:anyAtomicType) @@ -3218,7 +3218,7 @@ public interface CtsExpr { * Returns a query that matches all fragments. * * - + *

* Provides a client interface to the cts:true-query server function. * @return a server expression with the cts:query server data type @@ -3228,7 +3228,7 @@ public interface CtsExpr { * Creates a reference to the URI lexicon, for use as a parameter to cts:value-tuples. This function requires the URI lexicon to be enabled, otherwise it throws an exception. * * - + *

* Provides a client interface to the cts:uri-reference server function. * @return a server expression with the cts:reference server data type @@ -3246,7 +3246,7 @@ public interface CtsExpr { * Returns a query matching text content containing a given phrase. * * - + *

* Provides a client interface to the cts:word-query server function. * @param text Some words or phrases to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) @@ -3258,7 +3258,7 @@ public interface CtsExpr { *

* Provides a client interface to the cts:word-query server function. * @param text Some words or phrases to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. "no-limit-check" is default, if neither "limit-check" nor "no-limit-check" is explicitly specified. (of xs:string) * @return a server expression with the cts:query server data type */ public CtsQueryExpr wordQuery(String text, String... options); @@ -3267,7 +3267,7 @@ public interface CtsExpr { *

* Provides a client interface to the cts:word-query server function. * @param text Some words or phrases to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. "no-limit-check" is default, if neither "limit-check" nor "no-limit-check" is explicitly specified. (of xs:string) * @return a server expression with the cts:query server data type */ public CtsQueryExpr wordQuery(ServerExpression text, ServerExpression options); @@ -3276,7 +3276,7 @@ public interface CtsExpr { *

* Provides a client interface to the cts:word-query server function. * @param text Some words or phrases to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. "no-limit-check" is default, if neither "limit-check" nor "no-limit-check" is explicitly specified. (of xs:string) * @param weight A weight for this query. Higher weights move search results up in the relevance order. The default is 1.0. The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. Weights less than the absolute value of 0.0625 (between -0.0625 and 0.0625) are rounded to 0, which means that they do not contribute to the score. (of xs:double) * @return a server expression with the cts:query server data type */ @@ -3286,7 +3286,7 @@ public interface CtsExpr { *

* Provides a client interface to the cts:word-query server function. * @param text Some words or phrases to match. When multiple strings are specified, the query matches if any string matches. (of xs:string) - * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. (of xs:string) + * @param options Options to this query. The default is (). Options include: "case-sensitive" A case-sensitive query. "case-insensitive" A case-insensitive query. "diacritic-sensitive" A diacritic-sensitive query. "diacritic-insensitive" A diacritic-insensitive query. "punctuation-sensitive" A punctuation-sensitive query. "punctuation-insensitive" A punctuation-insensitive query. "whitespace-sensitive" A whitespace-sensitive query. "whitespace-insensitive" A whitespace-insensitive query. "stemmed" A stemmed query. "unstemmed" An unstemmed query. "wildcarded" A wildcarded query. "unwildcarded" An unwildcarded query. "exact" An exact match query. Shorthand for "case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive", "unstemmed", and "unwildcarded". "lang=iso639code" Specifies the language of the query. The iso639code code portion is case-insensitive, and uses the languages specified by ISO 639. The default is specified in the database configuration. "distance-weight=number" A weight applied based on the minimum distance between matches of this query. Higher weights add to the importance of proximity (as opposed to term matches) when the relevance order is calculated. The default value is 0.0 (no impact of proximity). The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. This parameter has no effect if the word positions index is not enabled. This parameter has no effect on searches that use score-simple, score-random, or score-zero (because those scoring algorithms do not consider term frequency, proximity is irrelevant). "min-occurs=number" Specifies the minimum number of occurrences required. If fewer that this number of words occur, the fragment does not match. The default is 1. "max-occurs=number" Specifies the maximum number of occurrences required. If more than this number of words occur, the fragment does not match. The default is unbounded. "synonym" Specifies that all of the terms in the $text parameter are considered synonyms for scoring purposes. The result is that occurrences of more than one of the synonyms are scored as if there are more occurrences of the same term (as opposed to having a separate term that contributes to score). "lexicon-expand=value" The value is one of full, prefix-postfix, off, or heuristic (the default is heuristic). An option with a value of lexicon-expand=full specifies that wildcards are resolved by expanding the pattern to words in a lexicon (if there is one available), and turning into a series of cts:word-queries, even if this takes a long time to evaluate. An option with a value of lexicon-expand=prefix-postfix specifies that wildcards are resolved by expanding the pattern to the pre- and postfixes of the words in the word lexicon (if there is one), and turning the query into a series of character queries, even if it takes a long time to evaluate. An option with a value of lexicon-expand=off specifies that wildcards are only resolved by looking up character patterns in the search pattern index, not in the lexicon. An option with a value of lexicon-expand=heuristic, which is the default, specifies that wildcards are resolved by using a series of internal rules, such as estimating the number of lexicon entries that need to be scanned, seeing if the estimate crosses certain thresholds, and (if appropriate), using another way besides lexicon expansion to resolve the query. "lexicon-expansion-limit=number" Specifies the limit for lexicon expansion. This puts a restriction on the number of lexicon expansions that can be performed. If the limit is exceeded, the server may raise an error depending on whether the "limit-check" option is set. The default value for this option will be 4096. "limit-check" Specifies that an error will be raised if the lexicon expansion exceeds the specified limit. "no-limit-check" Specifies that error will not be raised if the lexicon expansion exceeds the specified limit. The server will try to resolve the wildcard. "no-limit-check" is default, if neither "limit-check" nor "no-limit-check" is explicitly specified. (of xs:string) * @param weight A weight for this query. Higher weights move search results up in the relevance order. The default is 1.0. The weight should be between 64 and -16. Weights greater than 64 will have the same effect as a weight of 64. Weights less than the absolute value of 0.0625 (between -0.0625 and 0.0625) are rounded to 0, which means that they do not contribute to the score. (of xs:double) * @return a server expression with the cts:query server data type */ @@ -3297,49 +3297,49 @@ public interface CtsExpr { * @return a CtsBoxSeqExpr sequence */ public CtsBoxSeqExpr boxSeq(CtsBoxExpr... items); - + /** * Constructs a sequence of CtsCircleExpr items. * @param items the CtsCircleExpr items collected by the sequence * @return a CtsCircleSeqExpr sequence */ public CtsCircleSeqExpr circleSeq(CtsCircleExpr... items); - + /** * Constructs a sequence of CtsPeriodExpr items. * @param items the CtsPeriodExpr items collected by the sequence * @return a CtsPeriodSeqExpr sequence */ public CtsPeriodSeqExpr periodSeq(CtsPeriodExpr... items); - + /** * Constructs a sequence of CtsPointExpr items. * @param items the CtsPointExpr items collected by the sequence * @return a CtsPointSeqExpr sequence */ public CtsPointSeqExpr pointSeq(CtsPointExpr... items); - + /** * Constructs a sequence of CtsPolygonExpr items. * @param items the CtsPolygonExpr items collected by the sequence * @return a CtsPolygonSeqExpr sequence */ public CtsPolygonSeqExpr polygonSeq(CtsPolygonExpr... items); - + /** * Constructs a sequence of CtsQueryExpr items. * @param items the CtsQueryExpr items collected by the sequence * @return a CtsQuerySeqExpr sequence */ public CtsQuerySeqExpr querySeq(CtsQueryExpr... items); - + /** * Constructs a sequence of CtsReferenceExpr items. * @param items the CtsReferenceExpr items collected by the sequence * @return a CtsReferenceSeqExpr sequence */ public CtsReferenceSeqExpr referenceSeq(CtsReferenceExpr... items); - + /** * Constructs a sequence of CtsRegionExpr items. * @param items the CtsRegionExpr items collected by the sequence diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/expression/PlanBuilder.java b/marklogic-client-api/src/main/java/com/marklogic/client/expression/PlanBuilder.java index 67ed1ab38..664c6cc98 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/expression/PlanBuilder.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/expression/PlanBuilder.java @@ -204,10 +204,10 @@ protected PlanBuilder( */ public abstract ServerExpression not(ServerExpression operand); /** - * This function returns true if the specified expressions all return true. Otherwise, it returns false. + * This function returns true if any of the specified boolean expressions return true. Otherwise, it returns false. *

* Provides a client interface to the op:or server function. - * @param left The left value expression. (of xs:anyAtomicType) + * @param left The left value expression. See Boolean Expression Functions for the list of functions used to build boolean expressions. (of xs:anyAtomicType) * @return a server expression with the xs:boolean server data type */ public abstract ServerExpression or(ServerExpression... left); @@ -264,13 +264,13 @@ protected PlanBuilder( public abstract PlanParamExpr param(XsStringVal name); /** * Identifies a column where the column name is unique and a qualifier on the column name isn't necessary (and might not exist). - * @param column the column value. + * @param column The name of the column. * @return a PlanColumn object */ public abstract PlanColumn col(String column); /** * Identifies a column where the column name is unique and a qualifier on the column name isn't necessary (and might not exist). - * @param column the column value. + * @param column The name of the column. * @return a PlanColumn object */ public abstract PlanColumn col(XsStringVal column); @@ -789,7 +789,7 @@ protected PlanBuilder( * This function averages the non-null values of the column for the rows in the group or row set. The result is used for building the parameters used by the op:group-by function. * @param name The name to be used for the aggregated column. See {@link PlanBuilder#col(XsStringVal)} * @param column The column to be aggregated. See {@link PlanBuilder#col(XsStringVal)} - * @param option The options can take a values key with a distinct value to average the distinct values of the column. + * @param option The options can take a values key with a 'distinct' value to average the distinct values of the column. * @return a PlanAggregateCol object */ public abstract PlanAggregateCol avg(String name, String column, PlanValueOption option); @@ -797,7 +797,7 @@ protected PlanBuilder( * This function averages the non-null values of the column for the rows in the group or row set. The result is used for building the parameters used by the op:group-by function. * @param name The name to be used for the aggregated column. See {@link PlanBuilder#col(XsStringVal)} * @param column The column to be aggregated. See {@link PlanBuilder#col(XsStringVal)} - * @param option The options can take a values key with a distinct value to average the distinct values of the column. + * @param option The options can take a values key with a 'distinct' value to average the distinct values of the column. * @return a PlanAggregateCol object */ public abstract PlanAggregateCol avg(PlanColumn name, PlanExprCol column, PlanValueOption option); @@ -819,7 +819,7 @@ protected PlanBuilder( * This function constructs an array whose items are the result of evaluating the column for each row in the group or row set. The result is used for building the parameters used by the op:group-by function. * @param name The name to be used for the aggregated column. See {@link PlanBuilder#col(XsStringVal)} * @param column The columns to be aggregated. See {@link PlanBuilder#col(XsStringVal)} - * @param option The options can take a values key with a distinct value to average the distinct values of the column. + * @param option The options can take a values key with a 'distinct' value to aggregate the distinct values of the column. * @return a PlanAggregateCol object */ public abstract PlanAggregateCol arrayAggregate(String name, String column, PlanValueOption option); @@ -827,7 +827,7 @@ protected PlanBuilder( * This function constructs an array whose items are the result of evaluating the column for each row in the group or row set. The result is used for building the parameters used by the op:group-by function. * @param name The name to be used for the aggregated column. See {@link PlanBuilder#col(XsStringVal)} * @param column The columns to be aggregated. See {@link PlanBuilder#col(XsStringVal)} - * @param option The options can take a values key with a distinct value to average the distinct values of the column. + * @param option The options can take a values key with a 'distinct' value to aggregate the distinct values of the column. * @return a PlanAggregateCol object */ public abstract PlanAggregateCol arrayAggregate(PlanColumn name, PlanExprCol column, PlanValueOption option); @@ -907,7 +907,7 @@ protected PlanBuilder( * This function gets the largest non-null value of the column for the rows in the group or row set. The result is used for building the parameters used by the op:group-by function. * @param name The name to be used for the largest value. See {@link PlanBuilder#col(XsStringVal)} * @param column The group or row set. See {@link PlanBuilder#col(XsStringVal)} - * @param option The options can take a values key with a distinct value to average the distinct values of the column. + * @param option the option value. * @return a PlanAggregateCol object */ public abstract PlanAggregateCol max(String name, String column, PlanValueOption option); @@ -915,7 +915,7 @@ protected PlanBuilder( * This function gets the largest non-null value of the column for the rows in the group or row set. The result is used for building the parameters used by the op:group-by function. * @param name The name to be used for the largest value. See {@link PlanBuilder#col(XsStringVal)} * @param column The group or row set. See {@link PlanBuilder#col(XsStringVal)} - * @param option The options can take a values key with a distinct value to average the distinct values of the column. + * @param option the option value. * @return a PlanAggregateCol object */ public abstract PlanAggregateCol max(PlanColumn name, PlanExprCol column, PlanValueOption option); @@ -937,7 +937,7 @@ protected PlanBuilder( * This function gets the smallest non-null value of the column for the rows in the group or row set. The result is used for building the parameters used by the op:group-by function. * @param name The name to be used for the smallest value. See {@link PlanBuilder#col(XsStringVal)} * @param column The group or row set. See {@link PlanBuilder#col(XsStringVal)} - * @param option The options can take a values key with a distinct value to average the distinct values of the column. + * @param option the option value. * @return a PlanAggregateCol object */ public abstract PlanAggregateCol min(String name, String column, PlanValueOption option); @@ -945,7 +945,7 @@ protected PlanBuilder( * This function gets the smallest non-null value of the column for the rows in the group or row set. The result is used for building the parameters used by the op:group-by function. * @param name The name to be used for the smallest value. See {@link PlanBuilder#col(XsStringVal)} * @param column The group or row set. See {@link PlanBuilder#col(XsStringVal)} - * @param option The options can take a values key with a distinct value to average the distinct values of the column. + * @param option the option value. * @return a PlanAggregateCol object */ public abstract PlanAggregateCol min(PlanColumn name, PlanExprCol column, PlanValueOption option); @@ -981,7 +981,7 @@ protected PlanBuilder( * This call constructs a sequence whose items are the values of a column for each row in the group or row set. The result is used for building the parameters used by the op:group-by function. * @param name The name to be used for the aggregated column. See {@link PlanBuilder#col(XsStringVal)} * @param column The column with the values to aggregate. See {@link PlanBuilder#col(XsStringVal)} - * @param option The options can take a values key with a distinct value to average the distinct values of the column. + * @param option The options can take a values key with a 'distinct' value to aggregate the distinct values of the column. * @return a PlanAggregateCol object */ public abstract PlanAggregateCol sequenceAggregate(String name, String column, PlanValueOption option); @@ -989,7 +989,7 @@ protected PlanBuilder( * This call constructs a sequence whose items are the values of a column for each row in the group or row set. The result is used for building the parameters used by the op:group-by function. * @param name The name to be used for the aggregated column. See {@link PlanBuilder#col(XsStringVal)} * @param column The column with the values to aggregate. See {@link PlanBuilder#col(XsStringVal)} - * @param option The options can take a values key with a distinct value to average the distinct values of the column. + * @param option The options can take a values key with a 'distinct' value to aggregate the distinct values of the column. * @return a PlanAggregateCol object */ public abstract PlanAggregateCol sequenceAggregate(PlanColumn name, PlanExprCol column, PlanValueOption option); @@ -1011,7 +1011,7 @@ protected PlanBuilder( * This function adds the non-null values of the column for the rows in the group or row set. The result is used for building the parameters used by the op:group-by function. * @param name The name to be used for the aggregated column. See {@link PlanBuilder#col(XsStringVal)} * @param column The column with the values to add. See {@link PlanBuilder#col(XsStringVal)} - * @param option The options can take a values key with a distinct value to average the distinct values of the column. + * @param option The options can take a values key with a 'distinct' value to sum the distinct values of the column. * @return a PlanAggregateCol object */ public abstract PlanAggregateCol sum(String name, String column, PlanValueOption option); @@ -1019,7 +1019,7 @@ protected PlanBuilder( * This function adds the non-null values of the column for the rows in the group or row set. The result is used for building the parameters used by the op:group-by function. * @param name The name to be used for the aggregated column. See {@link PlanBuilder#col(XsStringVal)} * @param column The column with the values to add. See {@link PlanBuilder#col(XsStringVal)} - * @param option The options can take a values key with a distinct value to average the distinct values of the column. + * @param option The options can take a values key with a 'distinct' value to sum the distinct values of the column. * @return a PlanAggregateCol object */ public abstract PlanAggregateCol sum(PlanColumn name, PlanExprCol column, PlanValueOption option); @@ -1047,7 +1047,7 @@ protected PlanBuilder( * @param column The column with the values to aggregate. See {@link PlanBuilder#col(XsStringVal)} * @param module The path to the installed plugin module. * @param function The name of the UDF function. - * @param arg The options can take a values key with a distinct value to average the distinct values of the column and an arg key specifying an argument for the user-defined aggregate. The value can be a string or placeholder parameter. + * @param arg The options can take a values key with a 'distinct' value to aggregate the distinct values of the column and an arg key specifying an argument for the user-defined aggregate. The value can be a string or placeholder parameter. * @return a PlanAggregateCol object */ public abstract PlanAggregateCol uda(String name, String column, String module, String function, String arg); @@ -1057,7 +1057,7 @@ protected PlanBuilder( * @param column The column with the values to aggregate. See {@link PlanBuilder#col(XsStringVal)} * @param module The path to the installed plugin module. * @param function The name of the UDF function. - * @param arg The options can take a values key with a distinct value to average the distinct values of the column and an arg key specifying an argument for the user-defined aggregate. The value can be a string or placeholder parameter. + * @param arg The options can take a values key with a 'distinct' value to aggregate the distinct values of the column and an arg key specifying an argument for the user-defined aggregate. The value can be a string or placeholder parameter. * @return a PlanAggregateCol object */ public abstract PlanAggregateCol uda(PlanColumn name, PlanExprCol column, XsStringVal module, XsStringVal function, XsAnyAtomicTypeVal arg); @@ -1440,13 +1440,13 @@ protected PlanBuilder( public interface AccessPlan extends ModifyPlan, PlanBuilderBase.AccessPlanBase { /** * Identifies a column where the column name is unique and a qualifier on the column name isn't necessary (and might not exist). - * @param column the column value. + * @param column The name of the column. * @return a PlanColumn object */ public abstract PlanColumn col(String column); /** * Identifies a column where the column name is unique and a qualifier on the column name isn't necessary (and might not exist). - * @param column the column value. + * @param column The name of the column. * @return a PlanColumn object */ public abstract PlanColumn col(XsStringVal column); @@ -1507,7 +1507,7 @@ public interface ModifyPlan extends PreparePlan, PlanBuilderBase.ModifyPlanBase * @param vectorColumn The column representing the vector ann-indexed column to perform the index lookup against. * @param queryVector Specifies the query vector to perform the index lookup with. * @param distanceColumn Optional output column that captures the values of the distance metric of the vectors retrieved from the index associated with vectorColumn and the queryVector. - * @param options Optional sequence of strings or a map containing keys and values for the options to this operator. + * @param options Optional sequence of strings or a map containing keys and values for the options to this operator. * @return * @since 7.2.0 */ @@ -1528,30 +1528,30 @@ public interface ModifyPlan extends PreparePlan, PlanBuilderBase.ModifyPlanBase /** * This method is a filtering join that filters based on whether the join exists or not but doesn't add any columns. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} * @return a ModifyPlan object */ public abstract ModifyPlan existsJoin(ModifyPlan right, PlanJoinKey... keys); /** * This method is a filtering join that filters based on whether the join exists or not but doesn't add any columns. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} * @return a ModifyPlan object */ public abstract ModifyPlan existsJoin(ModifyPlan right, PlanJoinKeySeq keys); /** * This method is a filtering join that filters based on whether the join exists or not but doesn't add any columns. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} - * @param condition A boolean expression that filters the join output rows. (of xs:boolean) + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param condition A boolean expression used to compare the left and right rows. See Boolean Expression Functions for the list of functions used to build boolean expressions. (of xs:boolean) * @return a ModifyPlan object */ public abstract ModifyPlan existsJoin(ModifyPlan right, PlanJoinKeySeq keys, boolean condition); /** * This method is a filtering join that filters based on whether the join exists or not but doesn't add any columns. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} - * @param condition A boolean expression that filters the join output rows. (of xs:boolean) + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param condition A boolean expression used to compare the left and right rows. See Boolean Expression Functions for the list of functions used to build boolean expressions. (of xs:boolean) * @return a ModifyPlan object */ public abstract ModifyPlan existsJoin(ModifyPlan right, PlanJoinKeySeq keys, ServerExpression condition); @@ -1647,30 +1647,30 @@ public interface ModifyPlan extends PreparePlan, PlanBuilderBase.ModifyPlanBase /** * This method returns all rows from multiple tables where the join condition is met. In the output row set, each row concatenates one left row and one right row for each match between the keys in the left and right row sets. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} * @return a ModifyPlan object */ public abstract ModifyPlan joinInner(ModifyPlan right, PlanJoinKey... keys); /** * This method returns all rows from multiple tables where the join condition is met. In the output row set, each row concatenates one left row and one right row for each match between the keys in the left and right row sets. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} * @return a ModifyPlan object */ public abstract ModifyPlan joinInner(ModifyPlan right, PlanJoinKeySeq keys); /** * This method returns all rows from multiple tables where the join condition is met. In the output row set, each row concatenates one left row and one right row for each match between the keys in the left and right row sets. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} - * @param condition A boolean expression that filters the join output rows. (of xs:boolean) + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param condition A boolean expression used to compare the left and right rows. See Boolean Expression Functions for the list of functions used to build boolean expressions. (of xs:boolean) * @return a ModifyPlan object */ public abstract ModifyPlan joinInner(ModifyPlan right, PlanJoinKeySeq keys, boolean condition); /** * This method returns all rows from multiple tables where the join condition is met. In the output row set, each row concatenates one left row and one right row for each match between the keys in the left and right row sets. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} - * @param condition A boolean expression that filters the join output rows. (of xs:boolean) + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param condition A boolean expression used to compare the left and right rows. See Boolean Expression Functions for the list of functions used to build boolean expressions. (of xs:boolean) * @return a ModifyPlan object */ public abstract ModifyPlan joinInner(ModifyPlan right, PlanJoinKeySeq keys, ServerExpression condition); @@ -1683,30 +1683,30 @@ public interface ModifyPlan extends PreparePlan, PlanBuilderBase.ModifyPlanBase /** * This method yields one output row set with the rows from an inner join as well as the other rows from the left row set. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} * @return a ModifyPlan object */ public abstract ModifyPlan joinLeftOuter(ModifyPlan right, PlanJoinKey... keys); /** * This method yields one output row set with the rows from an inner join as well as the other rows from the left row set. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} * @return a ModifyPlan object */ public abstract ModifyPlan joinLeftOuter(ModifyPlan right, PlanJoinKeySeq keys); /** * This method yields one output row set with the rows from an inner join as well as the other rows from the left row set. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} - * @param condition A boolean expression that filters the join output rows. (of xs:boolean) + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param condition A boolean expression used to compare the left and right rows. See Boolean Expression Functions for the list of functions used to build boolean expressions. (of xs:boolean) * @return a ModifyPlan object */ public abstract ModifyPlan joinLeftOuter(ModifyPlan right, PlanJoinKeySeq keys, boolean condition); /** * This method yields one output row set with the rows from an inner join as well as the other rows from the left row set. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} - * @param condition A boolean expression that filters the join output rows. (of xs:boolean) + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param condition A boolean expression used to compare the left and right rows. See Boolean Expression Functions for the list of functions used to build boolean expressions. (of xs:boolean) * @return a ModifyPlan object */ public abstract ModifyPlan joinLeftOuter(ModifyPlan right, PlanJoinKeySeq keys, ServerExpression condition); @@ -1719,30 +1719,30 @@ public interface ModifyPlan extends PreparePlan, PlanBuilderBase.ModifyPlanBase /** * This method yields one output row set with the rows from an inner join as well as the other rows from both the left and right row sets. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} * @return a ModifyPlan object */ public abstract ModifyPlan joinFullOuter(ModifyPlan right, PlanJoinKey... keys); /** * This method yields one output row set with the rows from an inner join as well as the other rows from both the left and right row sets. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} * @return a ModifyPlan object */ public abstract ModifyPlan joinFullOuter(ModifyPlan right, PlanJoinKeySeq keys); /** * This method yields one output row set with the rows from an inner join as well as the other rows from both the left and right row sets. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} - * @param condition A boolean expression that filters the join output rows. (of xs:boolean) + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param condition A boolean expression used to compare the left and right rows. See Boolean Expression Functions for the list of functions used to build boolean expressions. (of xs:boolean) * @return a ModifyPlan object */ public abstract ModifyPlan joinFullOuter(ModifyPlan right, PlanJoinKeySeq keys, boolean condition); /** * This method yields one output row set with the rows from an inner join as well as the other rows from both the left and right row sets. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} - * @param condition A boolean expression that filters the join output rows. (of xs:boolean) + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param condition A boolean expression used to compare the left and right rows. See Boolean Expression Functions for the list of functions used to build boolean expressions. (of xs:boolean) * @return a ModifyPlan object */ public abstract ModifyPlan joinFullOuter(ModifyPlan right, PlanJoinKeySeq keys, ServerExpression condition); @@ -1755,30 +1755,30 @@ public interface ModifyPlan extends PreparePlan, PlanBuilderBase.ModifyPlanBase /** * This method is a filtering join that filters based on whether the join exists or not but doesn't add any columns. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} * @return a ModifyPlan object */ public abstract ModifyPlan notExistsJoin(ModifyPlan right, PlanJoinKey... keys); /** * This method is a filtering join that filters based on whether the join exists or not but doesn't add any columns. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} * @return a ModifyPlan object */ public abstract ModifyPlan notExistsJoin(ModifyPlan right, PlanJoinKeySeq keys); /** * This method is a filtering join that filters based on whether the join exists or not but doesn't add any columns. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} - * @param condition A boolean expression that filters the join output rows. (of xs:boolean) + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param condition A boolean expression used to compare the left and right rows. See Boolean Expression Functions for the list of functions used to build boolean expressions. (of xs:boolean) * @return a ModifyPlan object */ public abstract ModifyPlan notExistsJoin(ModifyPlan right, PlanJoinKeySeq keys, boolean condition); /** * This method is a filtering join that filters based on whether the join exists or not but doesn't add any columns. * @param right The row set from the right view. - * @param keys The equijoin from one or more calls to the op:on function. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} - * @param condition A boolean expression that filters the join output rows. (of xs:boolean) + * @param keys Equality condition(s) expressed using one or more calls to the function op:on. These conditions are used to compare the left and right rows. See {@link PlanBuilder#joinKeySeq(PlanJoinKey...)} + * @param condition A boolean expression used to compare the left and right rows. See Boolean Expression Functions for the list of functions used to build boolean expressions. (of xs:boolean) * @return a ModifyPlan object */ public abstract ModifyPlan notExistsJoin(ModifyPlan right, PlanJoinKeySeq keys, ServerExpression condition); @@ -2030,6 +2030,28 @@ public interface ModifyPlan extends PreparePlan, PlanBuilderBase.ModifyPlanBase * @since 7.1.0; requires MarkLogic 12 */ public abstract ModifyPlan shortestPath(PlanExprCol start, PlanExprCol end, PlanExprCol path, PlanExprCol length); +/** + * This method can be used to find the shortest path between two nodes in a given graph. + * @param start The column representing the input starting subject of the shortest path search. The columns can be named with a string or a column parameter function such as op:col. See {@link PlanBuilder#col(XsStringVal)} + * @param end The column representing the input ending object of the shortest path search. The columns can be named with a string or a column parameter function such as op:col. See {@link PlanBuilder#col(XsStringVal)} + * @param path The column is the output column representing the actual shortest path(s) taken from start to end. Values are not returned for this column if this is the empty sequence.The columns can be named with a string or a column parameter function such as op:col. See {@link PlanBuilder#col(XsStringVal)} + * @param length The column is the output column representing the length of the shortest path. Value is not returned for this column if this is the empty sequence.The columns can be named with a string or a column parameter function such as op:col. See {@link PlanBuilder#col(XsStringVal)} + * @param weight the weight value. See {@link PlanBuilder#col(XsStringVal)} + * @return a ModifyPlan object + * @since 7.2.0; requires MarkLogic 12 + */ + public abstract ModifyPlan shortestPath(String start, String end, String path, String length, String weight); +/** + * This method can be used to find the shortest path between two nodes in a given graph. + * @param start The column representing the input starting subject of the shortest path search. The columns can be named with a string or a column parameter function such as op:col. See {@link PlanBuilder#col(XsStringVal)} + * @param end The column representing the input ending object of the shortest path search. The columns can be named with a string or a column parameter function such as op:col. See {@link PlanBuilder#col(XsStringVal)} + * @param path The column is the output column representing the actual shortest path(s) taken from start to end. Values are not returned for this column if this is the empty sequence.The columns can be named with a string or a column parameter function such as op:col. See {@link PlanBuilder#col(XsStringVal)} + * @param length The column is the output column representing the length of the shortest path. Value is not returned for this column if this is the empty sequence.The columns can be named with a string or a column parameter function such as op:col. See {@link PlanBuilder#col(XsStringVal)} + * @param weight the weight value. See {@link PlanBuilder#col(XsStringVal)} + * @return a ModifyPlan object + * @since 7.2.0; requires MarkLogic 12 + */ + public abstract ModifyPlan shortestPath(PlanExprCol start, PlanExprCol end, PlanExprCol path, PlanExprCol length, PlanExprCol weight); } diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/expression/VecExpr.java b/marklogic-client-api/src/main/java/com/marklogic/client/expression/VecExpr.java index bceb632d1..bb911197c 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/expression/VecExpr.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/expression/VecExpr.java @@ -1,9 +1,28 @@ /* - * Copyright © 2024 MarkLogic Corporation. All Rights Reserved. + * Copyright (c) 2025 MarkLogic Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package com.marklogic.client.expression; +import com.marklogic.client.type.XsAnyAtomicTypeSeqVal; +import com.marklogic.client.type.XsDoubleVal; +import com.marklogic.client.type.XsFloatVal; +import com.marklogic.client.type.XsStringVal; +import com.marklogic.client.type.XsUnsignedIntVal; +import com.marklogic.client.type.XsUnsignedLongVal; + import com.marklogic.client.type.ServerExpression; // IMPORTANT: Do not edit. This file is generated. @@ -49,18 +68,32 @@ public interface VecExpr { * @return a server expression with the xs:string server data type */ public ServerExpression base64Encode(ServerExpression vector1); -/** - * Returns the cosine similarity between two vectors. The vectors must be of the same dimension. - * - * - *

- * Provides a client interface to the vec:cosine server function. - * @param vector1 The vector from which to calculate the cosine similarity with vector2. (of vec:vector) - * @param vector2 The vector from which to calculate the cosine similarity with vector1. (of vec:vector) - * @return a server expression with the xs:double server data type - */ - public ServerExpression cosine(ServerExpression vector1, ServerExpression vector2); + /** + * Returns the cosine similarity between two vectors. The vectors must be of the same dimension. + * + * + * + *

+ * Provides a client interface to the vec:cosine server function. + * + * @param vector1 The vector from which to calculate the cosine similarity with vector2. (of vec:vector) + * @param vector2 The vector from which to calculate the cosine similarity with vector1. (of vec:vector) + * @return a server expression with the xs:double server data type + * @since 7.2.0 + */ + public ServerExpression cosine(ServerExpression vector1, ServerExpression vector2); + + /** + * Return the distance between two vectors. The vectors must be of the same dimension. + * + * @param vector1 The vector from which to calculate the cosine distance with vector2. (of vec:vector) + * @param vector2 The vector from which to calculate the cosine distance with vector1. (of vec:vector) + * @return a server expression with the xs:double server data type + * @since 7.2.0 + */ + public ServerExpression cosineDistance(ServerExpression vector1, ServerExpression vector2); + /** * Returns the dimension of the vector passed in. * diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/PlanBuilderImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/PlanBuilderImpl.java index a42e8e3f8..721d95feb 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/PlanBuilderImpl.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/PlanBuilderImpl.java @@ -8,13 +8,13 @@ import com.marklogic.client.type.*; -// IMPORTANT: Do not edit. This file is generated. +// IMPORTANT: Do not edit. This file is generated. abstract class PlanBuilderImpl extends PlanBuilderBaseImpl { PlanBuilderImpl() { } // builder methods - + @Override public ServerExpression add(ServerExpression... left) { if (left == null) { @@ -23,7 +23,7 @@ public ServerExpression add(ServerExpression... left) { return new XsExprImpl.NumericCallImpl("op", "add", left); } - + @Override public PlanAggregateColSeq aggregateSeq(PlanAggregateCol... aggregate) { if (aggregate == null) { @@ -32,7 +32,7 @@ public PlanAggregateColSeq aggregateSeq(PlanAggregateCol... aggregate) { return new AggregateColSeqListImpl(aggregate); } - + @Override public ServerExpression and(ServerExpression... left) { if (left == null) { @@ -41,13 +41,13 @@ public ServerExpression and(ServerExpression... left) { return new XsExprImpl.BooleanCallImpl("op", "and", left); } - + @Override public PlanAggregateCol arrayAggregate(String name, String column) { return arrayAggregate((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol arrayAggregate(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -59,13 +59,13 @@ public PlanAggregateCol arrayAggregate(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "array-aggregate", new Object[]{ name, column }); } - + @Override public PlanExprCol as(String column, ServerExpression expression) { return as((column == null) ? (PlanColumn) null : col(column), expression); } - + @Override public PlanExprCol as(PlanColumn column, ServerExpression expression) { if (column == null) { @@ -74,13 +74,13 @@ public PlanExprCol as(PlanColumn column, ServerExpression expression) { return new ExprColCallImpl("op", "as", new Object[]{ column, expression }); } - + @Override public PlanSortKey asc(String column) { return asc((column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanSortKey asc(PlanExprCol column) { if (column == null) { @@ -89,13 +89,13 @@ public PlanSortKey asc(PlanExprCol column) { return new SortKeyCallImpl("op", "asc", new Object[]{ column }); } - + @Override public PlanAggregateCol avg(String name, String column) { return avg((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol avg(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -107,13 +107,13 @@ public PlanAggregateCol avg(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "avg", new Object[]{ name, column }); } - + @Override public PlanNamedGroup bucketGroup(String name, String key, String boundaries) { return bucketGroup((name == null) ? (XsStringVal) null : xs.string(name), (key == null) ? (PlanExprCol) null : exprCol(key), (boundaries == null) ? (XsAnyAtomicTypeVal) null : xs.string(boundaries)); } - + @Override public PlanNamedGroup bucketGroup(XsStringVal name, PlanExprCol key, XsAnyAtomicTypeSeqVal boundaries) { if (name == null) { @@ -128,13 +128,13 @@ public PlanNamedGroup bucketGroup(XsStringVal name, PlanExprCol key, XsAnyAtomic return new NamedGroupCallImpl("op", "bucket-group", new Object[]{ name, key, boundaries }); } - + @Override public PlanNamedGroup bucketGroup(String name, String key, String boundaries, String collation) { return bucketGroup((name == null) ? (XsStringVal) null : xs.string(name), (key == null) ? (PlanExprCol) null : exprCol(key), (boundaries == null) ? (XsAnyAtomicTypeVal) null : xs.string(boundaries), (collation == null) ? (XsStringVal) null : xs.string(collation)); } - + @Override public PlanNamedGroup bucketGroup(XsStringVal name, PlanExprCol key, XsAnyAtomicTypeSeqVal boundaries, XsStringVal collation) { if (name == null) { @@ -149,13 +149,13 @@ public PlanNamedGroup bucketGroup(XsStringVal name, PlanExprCol key, XsAnyAtomic return new NamedGroupCallImpl("op", "bucket-group", new Object[]{ name, key, boundaries, collation }); } - + @Override public PlanColumn col(String column) { return col((column == null) ? (XsStringVal) null : xs.string(column)); } - + @Override public PlanColumn col(XsStringVal column) { if (column == null) { @@ -164,7 +164,7 @@ public PlanColumn col(XsStringVal column) { return new ColumnCallImpl("op", "col", new Object[]{ column }); } - + @Override public PlanExprColSeq colSeq(String... col) { return colSeq( @@ -174,7 +174,7 @@ public PlanExprColSeq colSeq(String... col) { ); } - + @Override public PlanExprColSeq colSeq(PlanExprCol... col) { if (col == null) { @@ -183,13 +183,13 @@ public PlanExprColSeq colSeq(PlanExprCol... col) { return new ExprColSeqListImpl(col); } - + @Override public PlanAggregateCol count(String name) { return count((name == null) ? (PlanColumn) null : col(name)); } - + @Override public PlanAggregateCol count(PlanColumn name) { if (name == null) { @@ -198,13 +198,13 @@ public PlanAggregateCol count(PlanColumn name) { return new AggregateColCallImpl("op", "count", new Object[]{ name }); } - + @Override public PlanAggregateCol count(String name, String column) { return count((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol count(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -213,7 +213,7 @@ public PlanAggregateCol count(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "count", new Object[]{ name, column }); } - + @Override public PlanGroupSeq cube(PlanExprColSeq keys) { if (keys == null) { @@ -222,13 +222,13 @@ public PlanGroupSeq cube(PlanExprColSeq keys) { return new GroupSeqCallImpl("op", "cube", new Object[]{ keys }); } - + @Override public PlanSortKey desc(String column) { return desc((column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanSortKey desc(PlanExprCol column) { if (column == null) { @@ -237,7 +237,7 @@ public PlanSortKey desc(PlanExprCol column) { return new SortKeyCallImpl("op", "desc", new Object[]{ column }); } - + @Override public ServerExpression divide(ServerExpression left, ServerExpression right) { if (left == null) { @@ -249,43 +249,43 @@ public ServerExpression divide(ServerExpression left, ServerExpression right) { return new XsExprImpl.NumericCallImpl("op", "divide", new Object[]{ left, right }); } - + @Override public PlanRowColTypesSeq docColTypes() { return new RowColTypesSeqCallImpl("op", "doc-col-types", new Object[]{ }); } - + @Override public PlanDocColsIdentifier docCols() { return new DocColsIdentifierCallImpl("op", "doc-cols", new Object[]{ }); } - + @Override public PlanDocColsIdentifier docCols(String qualifier) { return docCols((qualifier == null) ? (XsStringVal) null : xs.string(qualifier)); } - + @Override public PlanDocColsIdentifier docCols(XsStringVal qualifier) { return new DocColsIdentifierCallImpl("op", "doc-cols", new Object[]{ qualifier }); } - + @Override public PlanDocColsIdentifier docCols(String qualifier, String names) { return docCols((qualifier == null) ? (XsStringVal) null : xs.string(qualifier), (names == null) ? (XsStringVal) null : xs.string(names)); } - + @Override public PlanDocColsIdentifier docCols(XsStringVal qualifier, XsStringSeqVal names) { return new DocColsIdentifierCallImpl("op", "doc-cols", new Object[]{ qualifier, names }); } - + @Override public ServerExpression eq(ServerExpression... operand) { if (operand == null) { @@ -294,13 +294,13 @@ public ServerExpression eq(ServerExpression... operand) { return new XsExprImpl.BooleanCallImpl("op", "eq", operand); } - + @Override public PlanSystemColumn fragmentIdCol(String column) { return fragmentIdCol((column == null) ? (XsStringVal) null : xs.string(column)); } - + @Override public PlanSystemColumn fragmentIdCol(XsStringVal column) { if (column == null) { @@ -309,13 +309,13 @@ public PlanSystemColumn fragmentIdCol(XsStringVal column) { return new SystemColumnCallImpl("op", "fragment-id-col", new Object[]{ column }); } - + @Override public AccessPlan fromDocDescriptors(PlanDocDescriptor... docDescriptor) { return fromDocDescriptors(new DocDescriptorSeqListImpl(docDescriptor)); } - + @Override public AccessPlan fromDocDescriptors(PlanDocDescriptorSeq docDescriptor) { if (docDescriptor == null) { @@ -324,13 +324,13 @@ public AccessPlan fromDocDescriptors(PlanDocDescriptorSeq docDescriptor) { return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-doc-descriptors", new Object[]{ docDescriptor }); } - + @Override public AccessPlan fromDocDescriptors(PlanDocDescriptorSeq docDescriptor, String qualifier) { return fromDocDescriptors(docDescriptor, (qualifier == null) ? (XsStringVal) null : xs.string(qualifier)); } - + @Override public AccessPlan fromDocDescriptors(PlanDocDescriptorSeq docDescriptor, XsStringVal qualifier) { if (docDescriptor == null) { @@ -339,13 +339,13 @@ public AccessPlan fromDocDescriptors(PlanDocDescriptorSeq docDescriptor, XsStrin return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-doc-descriptors", new Object[]{ docDescriptor, qualifier }); } - + @Override public AccessPlan fromParam(String paramName, String qualifier, PlanRowColTypesSeq rowColTypes) { return fromParam((paramName == null) ? (XsStringVal) null : xs.string(paramName), (qualifier == null) ? (XsStringVal) null : xs.string(qualifier), rowColTypes); } - + @Override public AccessPlan fromParam(XsStringVal paramName, XsStringVal qualifier, PlanRowColTypesSeq rowColTypes) { if (paramName == null) { @@ -357,13 +357,13 @@ public AccessPlan fromParam(XsStringVal paramName, XsStringVal qualifier, PlanRo return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-param", new Object[]{ paramName, qualifier, rowColTypes }); } - + @Override public ModifyPlan fromSparql(String select) { return fromSparql((select == null) ? (XsStringVal) null : xs.string(select)); } - + @Override public ModifyPlan fromSparql(XsStringVal select) { if (select == null) { @@ -372,13 +372,13 @@ public ModifyPlan fromSparql(XsStringVal select) { return new PlanBuilderSubImpl.ModifyPlanSubImpl("op", "from-sparql", new Object[]{ select }); } - + @Override public ModifyPlan fromSparql(String select, String qualifierName) { return fromSparql((select == null) ? (XsStringVal) null : xs.string(select), (qualifierName == null) ? (XsStringVal) null : xs.string(qualifierName)); } - + @Override public ModifyPlan fromSparql(XsStringVal select, XsStringVal qualifierName) { if (select == null) { @@ -387,13 +387,13 @@ public ModifyPlan fromSparql(XsStringVal select, XsStringVal qualifierName) { return new PlanBuilderSubImpl.ModifyPlanSubImpl("op", "from-sparql", new Object[]{ select, qualifierName }); } - + @Override public ModifyPlan fromSql(String select) { return fromSql((select == null) ? (XsStringVal) null : xs.string(select)); } - + @Override public ModifyPlan fromSql(XsStringVal select) { if (select == null) { @@ -402,13 +402,13 @@ public ModifyPlan fromSql(XsStringVal select) { return new PlanBuilderSubImpl.ModifyPlanSubImpl("op", "from-sql", new Object[]{ select }); } - + @Override public ModifyPlan fromSql(String select, String qualifierName) { return fromSql((select == null) ? (XsStringVal) null : xs.string(select), (qualifierName == null) ? (XsStringVal) null : xs.string(qualifierName)); } - + @Override public ModifyPlan fromSql(XsStringVal select, XsStringVal qualifierName) { if (select == null) { @@ -417,13 +417,13 @@ public ModifyPlan fromSql(XsStringVal select, XsStringVal qualifierName) { return new PlanBuilderSubImpl.ModifyPlanSubImpl("op", "from-sql", new Object[]{ select, qualifierName }); } - + @Override public AccessPlan fromTriples(PlanTriplePattern... patterns) { return fromTriples(new TriplePatternSeqListImpl(patterns)); } - + @Override public AccessPlan fromTriples(PlanTriplePatternSeq patterns) { if (patterns == null) { @@ -432,13 +432,13 @@ public AccessPlan fromTriples(PlanTriplePatternSeq patterns) { return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-triples", new Object[]{ patterns }); } - + @Override public AccessPlan fromTriples(PlanTriplePatternSeq patterns, String qualifierName) { return fromTriples(patterns, (qualifierName == null) ? (XsStringVal) null : xs.string(qualifierName)); } - + @Override public AccessPlan fromTriples(PlanTriplePatternSeq patterns, XsStringVal qualifierName) { if (patterns == null) { @@ -447,13 +447,13 @@ public AccessPlan fromTriples(PlanTriplePatternSeq patterns, XsStringVal qualifi return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-triples", new Object[]{ patterns, qualifierName }); } - + @Override public AccessPlan fromTriples(PlanTriplePatternSeq patterns, String qualifierName, String graphIris) { return fromTriples(patterns, (qualifierName == null) ? (XsStringVal) null : xs.string(qualifierName), (graphIris == null) ? (XsStringVal) null : xs.string(graphIris)); } - + @Override public AccessPlan fromTriples(PlanTriplePatternSeq patterns, XsStringVal qualifierName, XsStringSeqVal graphIris) { if (patterns == null) { @@ -462,13 +462,13 @@ public AccessPlan fromTriples(PlanTriplePatternSeq patterns, XsStringVal qualifi return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-triples", new Object[]{ patterns, qualifierName, graphIris }); } - + @Override public AccessPlan fromView(String schema, String view) { return fromView((schema == null) ? (XsStringVal) null : xs.string(schema), (view == null) ? (XsStringVal) null : xs.string(view)); } - + @Override public AccessPlan fromView(XsStringVal schema, XsStringVal view) { if (view == null) { @@ -477,13 +477,13 @@ public AccessPlan fromView(XsStringVal schema, XsStringVal view) { return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-view", new Object[]{ schema, view }); } - + @Override public AccessPlan fromView(String schema, String view, String qualifierName) { return fromView((schema == null) ? (XsStringVal) null : xs.string(schema), (view == null) ? (XsStringVal) null : xs.string(view), (qualifierName == null) ? (XsStringVal) null : xs.string(qualifierName)); } - + @Override public AccessPlan fromView(XsStringVal schema, XsStringVal view, XsStringVal qualifierName) { if (view == null) { @@ -492,13 +492,13 @@ public AccessPlan fromView(XsStringVal schema, XsStringVal view, XsStringVal qua return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-view", new Object[]{ schema, view, qualifierName }); } - + @Override public AccessPlan fromView(String schema, String view, String qualifierName, PlanSystemColumn sysCols) { return fromView((schema == null) ? (XsStringVal) null : xs.string(schema), (view == null) ? (XsStringVal) null : xs.string(view), (qualifierName == null) ? (XsStringVal) null : xs.string(qualifierName), sysCols); } - + @Override public AccessPlan fromView(XsStringVal schema, XsStringVal view, XsStringVal qualifierName, PlanSystemColumn sysCols) { if (view == null) { @@ -507,7 +507,7 @@ public AccessPlan fromView(XsStringVal schema, XsStringVal view, XsStringVal qua return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-view", new Object[]{ schema, view, qualifierName, sysCols }); } - + @Override public ServerExpression ge(ServerExpression left, ServerExpression right) { if (left == null) { @@ -519,13 +519,13 @@ public ServerExpression ge(ServerExpression left, ServerExpression right) { return new XsExprImpl.BooleanCallImpl("op", "ge", new Object[]{ left, right }); } - + @Override public PlanSystemColumn graphCol(String column) { return graphCol((column == null) ? (XsStringVal) null : xs.string(column)); } - + @Override public PlanSystemColumn graphCol(XsStringVal column) { if (column == null) { @@ -534,19 +534,19 @@ public PlanSystemColumn graphCol(XsStringVal column) { return new SystemColumnCallImpl("op", "graph-col", new Object[]{ column }); } - + @Override public PlanGroup group(PlanExprColSeq keys) { return new GroupCallImpl("op", "group", new Object[]{ keys }); } - + @Override public PlanAggregateCol groupKey(String name, String column) { return groupKey((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol groupKey(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -558,7 +558,7 @@ public PlanAggregateCol groupKey(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "group-key", new Object[]{ name, column }); } - + @Override public ServerExpression gt(ServerExpression left, ServerExpression right) { if (left == null) { @@ -570,13 +570,13 @@ public ServerExpression gt(ServerExpression left, ServerExpression right) { return new XsExprImpl.BooleanCallImpl("op", "gt", new Object[]{ left, right }); } - + @Override public PlanAggregateCol hasGroupKey(String name, String column) { return hasGroupKey((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol hasGroupKey(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -588,7 +588,7 @@ public PlanAggregateCol hasGroupKey(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "has-group-key", new Object[]{ name, column }); } - + @Override public ServerExpression in(ServerExpression value, ServerExpression anyOf) { if (value == null) { @@ -600,7 +600,7 @@ public ServerExpression in(ServerExpression value, ServerExpression anyOf) { return new XsExprImpl.BooleanCallImpl("op", "in", new Object[]{ value, anyOf }); } - + @Override public ServerExpression isDefined(ServerExpression operand) { if (operand == null) { @@ -609,7 +609,7 @@ public ServerExpression isDefined(ServerExpression operand) { return new XsExprImpl.BooleanCallImpl("op", "is-defined", new Object[]{ operand }); } - + @Override public PlanJoinKeySeq joinKeySeq(PlanJoinKey... key) { if (key == null) { @@ -618,13 +618,13 @@ public PlanJoinKeySeq joinKeySeq(PlanJoinKey... key) { return new JoinKeySeqListImpl(key); } - + @Override public ServerExpression jsonBoolean(boolean value) { return jsonBoolean(xs.booleanVal(value)); } - + @Override public ServerExpression jsonBoolean(ServerExpression value) { if (value == null) { @@ -633,7 +633,7 @@ public ServerExpression jsonBoolean(ServerExpression value) { return new BaseTypeImpl.BooleanNodeCallImpl("op", "json-boolean", new Object[]{ value }); } - + @Override public ServerExpression jsonDocument(ServerExpression root) { if (root == null) { @@ -642,19 +642,19 @@ public ServerExpression jsonDocument(ServerExpression root) { return new BaseTypeImpl.DocumentNodeCallImpl("op", "json-document", new Object[]{ root }); } - + @Override public ServerExpression jsonNull() { return new BaseTypeImpl.NullNodeCallImpl("op", "json-null", new Object[]{ }); } - + @Override public ServerExpression jsonNumber(double value) { return jsonNumber(xs.doubleVal(value)); } - + @Override public ServerExpression jsonNumber(ServerExpression value) { if (value == null) { @@ -663,13 +663,13 @@ public ServerExpression jsonNumber(ServerExpression value) { return new BaseTypeImpl.NumberNodeCallImpl("op", "json-number", new Object[]{ value }); } - + @Override public ServerExpression jsonString(String value) { return jsonString((value == null) ? (ServerExpression) null : xs.string(value)); } - + @Override public ServerExpression jsonString(ServerExpression value) { if (value == null) { @@ -678,7 +678,7 @@ public ServerExpression jsonString(ServerExpression value) { return new BaseTypeImpl.TextNodeCallImpl("op", "json-string", new Object[]{ value }); } - + @Override public ServerExpression le(ServerExpression left, ServerExpression right) { if (left == null) { @@ -690,7 +690,7 @@ public ServerExpression le(ServerExpression left, ServerExpression right) { return new XsExprImpl.BooleanCallImpl("op", "le", new Object[]{ left, right }); } - + @Override public ServerExpression lt(ServerExpression left, ServerExpression right) { if (left == null) { @@ -702,13 +702,13 @@ public ServerExpression lt(ServerExpression left, ServerExpression right) { return new XsExprImpl.BooleanCallImpl("op", "lt", new Object[]{ left, right }); } - + @Override public PlanAggregateCol max(String name, String column) { return max((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol max(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -720,13 +720,13 @@ public PlanAggregateCol max(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "max", new Object[]{ name, column }); } - + @Override public PlanAggregateCol min(String name, String column) { return min((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol min(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -738,13 +738,13 @@ public PlanAggregateCol min(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "min", new Object[]{ name, column }); } - + @Override public ServerExpression modulo(double left, double right) { return modulo(xs.doubleVal(left), xs.doubleVal(right)); } - + @Override public ServerExpression modulo(ServerExpression left, ServerExpression right) { if (left == null) { @@ -756,7 +756,7 @@ public ServerExpression modulo(ServerExpression left, ServerExpression right) { return new XsExprImpl.NumericCallImpl("op", "modulo", new Object[]{ left, right }); } - + @Override public ServerExpression multiply(ServerExpression... left) { if (left == null) { @@ -765,13 +765,13 @@ public ServerExpression multiply(ServerExpression... left) { return new XsExprImpl.NumericCallImpl("op", "multiply", left); } - + @Override public PlanNamedGroup namedGroup(String name) { return namedGroup((name == null) ? (XsStringVal) null : xs.string(name)); } - + @Override public PlanNamedGroup namedGroup(XsStringVal name) { if (name == null) { @@ -780,13 +780,13 @@ public PlanNamedGroup namedGroup(XsStringVal name) { return new NamedGroupCallImpl("op", "named-group", new Object[]{ name }); } - + @Override public PlanNamedGroup namedGroup(String name, String keys) { return namedGroup((name == null) ? (XsStringVal) null : xs.string(name), (keys == null) ? (PlanExprCol) null : exprCol(keys)); } - + @Override public PlanNamedGroup namedGroup(XsStringVal name, PlanExprColSeq keys) { if (name == null) { @@ -795,7 +795,7 @@ public PlanNamedGroup namedGroup(XsStringVal name, PlanExprColSeq keys) { return new NamedGroupCallImpl("op", "named-group", new Object[]{ name, keys }); } - + @Override public ServerExpression ne(ServerExpression left, ServerExpression right) { if (left == null) { @@ -807,7 +807,7 @@ public ServerExpression ne(ServerExpression left, ServerExpression right) { return new XsExprImpl.BooleanCallImpl("op", "ne", new Object[]{ left, right }); } - + @Override public ServerExpression not(ServerExpression operand) { if (operand == null) { @@ -816,7 +816,7 @@ public ServerExpression not(ServerExpression operand) { return new XsExprImpl.BooleanCallImpl("op", "not", new Object[]{ operand }); } - + @Override public PlanTriplePositionSeq objectSeq(PlanTriplePosition... object) { if (object == null) { @@ -825,13 +825,13 @@ public PlanTriplePositionSeq objectSeq(PlanTriplePosition... object) { return new TriplePositionSeqListImpl(object); } - + @Override public PlanJoinKey on(String left, String right) { return on((left == null) ? (PlanExprCol) null : exprCol(left), (right == null) ? (PlanExprCol) null : exprCol(right)); } - + @Override public PlanJoinKey on(PlanExprCol left, PlanExprCol right) { if (left == null) { @@ -843,7 +843,7 @@ public PlanJoinKey on(PlanExprCol left, PlanExprCol right) { return new JoinKeyCallImpl("op", "on", new Object[]{ left, right }); } - + @Override public ServerExpression or(ServerExpression... left) { if (left == null) { @@ -852,19 +852,19 @@ public ServerExpression or(ServerExpression... left) { return new XsExprImpl.BooleanCallImpl("op", "or", left); } - + @Override public PlanTriplePattern pattern(PlanTriplePositionSeq subjects, PlanTriplePositionSeq predicates, PlanTriplePositionSeq objects) { return new TriplePatternCallImpl("op", "pattern", new Object[]{ subjects, predicates, objects }); } - + @Override public PlanTriplePattern pattern(PlanTriplePositionSeq subjects, PlanTriplePositionSeq predicates, PlanTriplePositionSeq objects, PlanSystemColumnSeq sysCols) { return new TriplePatternCallImpl("op", "pattern", new Object[]{ subjects, predicates, objects, sysCols }); } - + @Override public PlanTriplePatternSeq patternSeq(PlanTriplePattern... pattern) { if (pattern == null) { @@ -873,7 +873,7 @@ public PlanTriplePatternSeq patternSeq(PlanTriplePattern... pattern) { return new TriplePatternSeqListImpl(pattern); } - + @Override public PlanTriplePositionSeq predicateSeq(PlanTriplePosition... predicate) { if (predicate == null) { @@ -882,13 +882,13 @@ public PlanTriplePositionSeq predicateSeq(PlanTriplePosition... predicate) { return new TriplePositionSeqListImpl(predicate); } - + @Override public PlanJsonProperty prop(String key, ServerExpression value) { return prop((key == null) ? (ServerExpression) null : xs.string(key), value); } - + @Override public PlanJsonProperty prop(ServerExpression key, ServerExpression value) { if (key == null) { @@ -900,13 +900,13 @@ public PlanJsonProperty prop(ServerExpression key, ServerExpression value) { return new JsonPropertyCallImpl("op", "prop", new Object[]{ key, value }); } - + @Override public PlanFunction resolveFunction(String functionName, String modulePath) { return resolveFunction((functionName == null) ? (XsQNameVal) null : xs.QName(functionName), (modulePath == null) ? (XsStringVal) null : xs.string(modulePath)); } - + @Override public PlanFunction resolveFunction(XsQNameVal functionName, XsStringVal modulePath) { if (functionName == null) { @@ -918,7 +918,7 @@ public PlanFunction resolveFunction(XsQNameVal functionName, XsStringVal moduleP return new FunctionCallImpl("op", "resolve-function", new Object[]{ functionName, modulePath }); } - + @Override public PlanGroupSeq rollup(PlanExprColSeq keys) { if (keys == null) { @@ -927,13 +927,13 @@ public PlanGroupSeq rollup(PlanExprColSeq keys) { return new GroupSeqCallImpl("op", "rollup", new Object[]{ keys }); } - + @Override public PlanAggregateCol sample(String name, String column) { return sample((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol sample(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -945,13 +945,13 @@ public PlanAggregateCol sample(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "sample", new Object[]{ name, column }); } - + @Override public PlanColumn schemaCol(String schema, String view, String column) { return schemaCol((schema == null) ? (XsStringVal) null : xs.string(schema), (view == null) ? (XsStringVal) null : xs.string(view), (column == null) ? (XsStringVal) null : xs.string(column)); } - + @Override public PlanColumn schemaCol(XsStringVal schema, XsStringVal view, XsStringVal column) { if (schema == null) { @@ -966,13 +966,13 @@ public PlanColumn schemaCol(XsStringVal schema, XsStringVal view, XsStringVal co return new ColumnCallImpl("op", "schema-col", new Object[]{ schema, view, column }); } - + @Override public PlanAggregateCol sequenceAggregate(String name, String column) { return sequenceAggregate((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol sequenceAggregate(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -984,7 +984,7 @@ public PlanAggregateCol sequenceAggregate(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "sequence-aggregate", new Object[]{ name, column }); } - + @Override public PlanSortKeySeq sortKeySeq(PlanSortKey... key) { if (key == null) { @@ -993,13 +993,13 @@ public PlanSortKeySeq sortKeySeq(PlanSortKey... key) { return new SortKeySeqListImpl(key); } - + @Override public PlanCondition sqlCondition(String expression) { return sqlCondition((expression == null) ? (XsStringVal) null : xs.string(expression)); } - + @Override public PlanCondition sqlCondition(XsStringVal expression) { if (expression == null) { @@ -1008,7 +1008,7 @@ public PlanCondition sqlCondition(XsStringVal expression) { return new ConditionCallImpl("op", "sql-condition", new Object[]{ expression }); } - + @Override public PlanTriplePositionSeq subjectSeq(PlanTriplePosition... subject) { if (subject == null) { @@ -1017,7 +1017,7 @@ public PlanTriplePositionSeq subjectSeq(PlanTriplePosition... subject) { return new TriplePositionSeqListImpl(subject); } - + @Override public ServerExpression subtract(ServerExpression left, ServerExpression right) { if (left == null) { @@ -1029,13 +1029,13 @@ public ServerExpression subtract(ServerExpression left, ServerExpression right) return new XsExprImpl.NumericCallImpl("op", "subtract", new Object[]{ left, right }); } - + @Override public PlanAggregateCol sum(String name, String column) { return sum((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol sum(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -1047,13 +1047,13 @@ public PlanAggregateCol sum(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "sum", new Object[]{ name, column }); } - + @Override public PlanAggregateCol uda(String name, String column, String module, String function) { return uda((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column), (module == null) ? (XsStringVal) null : xs.string(module), (function == null) ? (XsStringVal) null : xs.string(function)); } - + @Override public PlanAggregateCol uda(PlanColumn name, PlanExprCol column, XsStringVal module, XsStringVal function) { if (name == null) { @@ -1071,13 +1071,13 @@ public PlanAggregateCol uda(PlanColumn name, PlanExprCol column, XsStringVal mod return new AggregateColCallImpl("op", "uda", new Object[]{ name, column, module, function }); } - + @Override public PlanAggregateCol uda(String name, String column, String module, String function, String arg) { return uda((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column), (module == null) ? (XsStringVal) null : xs.string(module), (function == null) ? (XsStringVal) null : xs.string(function), (arg == null) ? (XsAnyAtomicTypeVal) null : xs.string(arg)); } - + @Override public PlanAggregateCol uda(PlanColumn name, PlanExprCol column, XsStringVal module, XsStringVal function, XsAnyAtomicTypeVal arg) { if (name == null) { @@ -1095,13 +1095,13 @@ public PlanAggregateCol uda(PlanColumn name, PlanExprCol column, XsStringVal mod return new AggregateColCallImpl("op", "uda", new Object[]{ name, column, module, function, arg }); } - + @Override public PlanColumn viewCol(String view, String column) { return viewCol((view == null) ? (XsStringVal) null : xs.string(view), (column == null) ? (XsStringVal) null : xs.string(column)); } - + @Override public PlanColumn viewCol(XsStringVal view, XsStringVal column) { if (view == null) { @@ -1113,13 +1113,13 @@ public PlanColumn viewCol(XsStringVal view, XsStringVal column) { return new ColumnCallImpl("op", "view-col", new Object[]{ view, column }); } - + @Override public PlanCase when(boolean condition, ServerExpression... value) { return when(xs.booleanVal(condition), value); } - + @Override public PlanCase when(ServerExpression condition, ServerExpression... value) { if (condition == null) { @@ -1128,13 +1128,13 @@ public PlanCase when(ServerExpression condition, ServerExpression... value) { return new CaseCallImpl("op", "when", new Object[]{ condition, new BaseTypeImpl.ItemSeqListImpl(value) }); } - + @Override public ServerExpression xmlAttribute(String name, String value) { return xmlAttribute((name == null) ? (ServerExpression) null : xs.QName(name), (value == null) ? (ServerExpression) null : xs.string(value)); } - + @Override public ServerExpression xmlAttribute(ServerExpression name, ServerExpression value) { if (name == null) { @@ -1146,7 +1146,7 @@ public ServerExpression xmlAttribute(ServerExpression name, ServerExpression val return new BaseTypeImpl.AttributeNodeCallImpl("op", "xml-attribute", new Object[]{ name, value }); } - + @Override public ServerExpression xmlAttributeSeq(ServerExpression... attribute) { if (attribute == null) { @@ -1155,13 +1155,13 @@ public ServerExpression xmlAttributeSeq(ServerExpression... attribute) { return new BaseTypeImpl.AttributeNodeSeqListImpl(attribute); } - + @Override public ServerExpression xmlComment(String content) { return xmlComment((content == null) ? (ServerExpression) null : xs.string(content)); } - + @Override public ServerExpression xmlComment(ServerExpression content) { if (content == null) { @@ -1170,7 +1170,7 @@ public ServerExpression xmlComment(ServerExpression content) { return new BaseTypeImpl.CommentNodeCallImpl("op", "xml-comment", new Object[]{ content }); } - + @Override public ServerExpression xmlDocument(ServerExpression root) { if (root == null) { @@ -1179,13 +1179,13 @@ public ServerExpression xmlDocument(ServerExpression root) { return new BaseTypeImpl.DocumentNodeCallImpl("op", "xml-document", new Object[]{ root }); } - + @Override public ServerExpression xmlElement(String name) { return xmlElement((name == null) ? (ServerExpression) null : xs.QName(name)); } - + @Override public ServerExpression xmlElement(ServerExpression name) { if (name == null) { @@ -1194,13 +1194,13 @@ public ServerExpression xmlElement(ServerExpression name) { return new BaseTypeImpl.ElementNodeCallImpl("op", "xml-element", new Object[]{ name }); } - + @Override public ServerExpression xmlElement(String name, ServerExpression attributes) { return xmlElement((name == null) ? (ServerExpression) null : xs.QName(name), attributes); } - + @Override public ServerExpression xmlElement(ServerExpression name, ServerExpression attributes) { if (name == null) { @@ -1209,13 +1209,13 @@ public ServerExpression xmlElement(ServerExpression name, ServerExpression attri return new BaseTypeImpl.ElementNodeCallImpl("op", "xml-element", new Object[]{ name, attributes }); } - + @Override public ServerExpression xmlElement(String name, ServerExpression attributes, ServerExpression... content) { return xmlElement((name == null) ? (ServerExpression) null : xs.QName(name), attributes, content); } - + @Override public ServerExpression xmlElement(ServerExpression name, ServerExpression attributes, ServerExpression... content) { if (name == null) { @@ -1224,13 +1224,13 @@ public ServerExpression xmlElement(ServerExpression name, ServerExpression attri return new BaseTypeImpl.ElementNodeCallImpl("op", "xml-element", new Object[]{ name, attributes, new BaseTypeImpl.XmlContentNodeSeqListImpl(content) }); } - + @Override public ServerExpression xmlPi(String name, String value) { return xmlPi((name == null) ? (ServerExpression) null : xs.string(name), (value == null) ? (ServerExpression) null : xs.string(value)); } - + @Override public ServerExpression xmlPi(ServerExpression name, ServerExpression value) { if (name == null) { @@ -1242,13 +1242,13 @@ public ServerExpression xmlPi(ServerExpression name, ServerExpression value) { return new BaseTypeImpl.ProcessingInstructionNodeCallImpl("op", "xml-pi", new Object[]{ name, value }); } - + @Override public ServerExpression xmlText(String value) { return xmlText((value == null) ? (ServerExpression) null : xs.string(value)); } - + @Override public ServerExpression xmlText(ServerExpression value) { if (value == null) { @@ -1257,13 +1257,13 @@ public ServerExpression xmlText(ServerExpression value) { return new BaseTypeImpl.TextNodeCallImpl("op", "xml-text", new Object[]{ value }); } - + @Override public ServerExpression xpath(String column, String path) { return xpath((column == null) ? (PlanColumn) null : col(column), (path == null) ? (ServerExpression) null : xs.string(path)); } - + @Override public ServerExpression xpath(PlanColumn column, ServerExpression path) { if (column == null) { @@ -1275,13 +1275,13 @@ public ServerExpression xpath(PlanColumn column, ServerExpression path) { return new BaseTypeImpl.NodeSeqCallImpl("op", "xpath", new Object[]{ column, path }); } - + @Override public ServerExpression xpath(String column, String path, PlanNamespaceBindingsSeq namespaceBindings) { return xpath((column == null) ? (PlanColumn) null : col(column), (path == null) ? (ServerExpression) null : xs.string(path), namespaceBindings); } - + @Override public ServerExpression xpath(PlanColumn column, ServerExpression path, PlanNamespaceBindingsSeq namespaceBindings) { if (column == null) { @@ -1295,441 +1295,441 @@ public ServerExpression xpath(PlanColumn column, ServerExpression path, PlanName // external type implementations - + static class AggregateColSeqListImpl extends PlanSeqListImpl implements PlanAggregateColSeq { AggregateColSeqListImpl(Object[] items) { super(items); } } - + static class AggregateColSeqCallImpl extends PlanCallImpl implements PlanAggregateColSeq { AggregateColSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class AggregateColCallImpl extends PlanCallImpl implements PlanAggregateCol { AggregateColCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class CaseSeqListImpl extends PlanSeqListImpl implements PlanCaseSeq { CaseSeqListImpl(Object[] items) { super(items); } } - + static class CaseSeqCallImpl extends PlanCallImpl implements PlanCaseSeq { CaseSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class CaseCallImpl extends PlanCallImpl implements PlanCase { CaseCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class ColumnSeqListImpl extends PlanSeqListImpl implements PlanColumnSeq { ColumnSeqListImpl(Object[] items) { super(items); } } - + static class ColumnSeqCallImpl extends PlanCallImpl implements PlanColumnSeq { ColumnSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class ColumnCallImpl extends PlanCallImpl implements PlanColumn { ColumnCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class ConditionSeqListImpl extends PlanSeqListImpl implements PlanConditionSeq { ConditionSeqListImpl(Object[] items) { super(items); } } - + static class ConditionSeqCallImpl extends PlanCallImpl implements PlanConditionSeq { ConditionSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class ConditionCallImpl extends PlanCallImpl implements PlanCondition { ConditionCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class DocColsIdentifierSeqListImpl extends PlanSeqListImpl implements PlanDocColsIdentifierSeq { DocColsIdentifierSeqListImpl(Object[] items) { super(items); } } - + static class DocColsIdentifierSeqCallImpl extends PlanCallImpl implements PlanDocColsIdentifierSeq { DocColsIdentifierSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class DocColsIdentifierCallImpl extends PlanCallImpl implements PlanDocColsIdentifier { DocColsIdentifierCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class DocDescriptorSeqListImpl extends PlanSeqListImpl implements PlanDocDescriptorSeq { DocDescriptorSeqListImpl(Object[] items) { super(items); } } - + static class DocDescriptorSeqCallImpl extends PlanCallImpl implements PlanDocDescriptorSeq { DocDescriptorSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class DocDescriptorCallImpl extends PlanCallImpl implements PlanDocDescriptor { DocDescriptorCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class ExprColSeqListImpl extends PlanSeqListImpl implements PlanExprColSeq { ExprColSeqListImpl(Object[] items) { super(items); } } - + static class ExprColSeqCallImpl extends PlanCallImpl implements PlanExprColSeq { ExprColSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class ExprColCallImpl extends PlanCallImpl implements PlanExprCol { ExprColCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class FunctionSeqListImpl extends PlanSeqListImpl implements PlanFunctionSeq { FunctionSeqListImpl(Object[] items) { super(items); } } - + static class FunctionSeqCallImpl extends PlanCallImpl implements PlanFunctionSeq { FunctionSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class FunctionCallImpl extends PlanCallImpl implements PlanFunction { FunctionCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class GroupSeqListImpl extends PlanSeqListImpl implements PlanGroupSeq { GroupSeqListImpl(Object[] items) { super(items); } } - + static class GroupSeqCallImpl extends PlanCallImpl implements PlanGroupSeq { GroupSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class GroupCallImpl extends PlanCallImpl implements PlanGroup { GroupCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class JoinKeySeqListImpl extends PlanSeqListImpl implements PlanJoinKeySeq { JoinKeySeqListImpl(Object[] items) { super(items); } } - + static class JoinKeySeqCallImpl extends PlanCallImpl implements PlanJoinKeySeq { JoinKeySeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class JoinKeyCallImpl extends PlanCallImpl implements PlanJoinKey { JoinKeyCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class JsonPropertySeqListImpl extends PlanSeqListImpl implements PlanJsonPropertySeq { JsonPropertySeqListImpl(Object[] items) { super(items); } } - + static class JsonPropertySeqCallImpl extends PlanCallImpl implements PlanJsonPropertySeq { JsonPropertySeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class JsonPropertyCallImpl extends PlanCallImpl implements PlanJsonProperty { JsonPropertyCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class NamedGroupSeqListImpl extends PlanSeqListImpl implements PlanNamedGroupSeq { NamedGroupSeqListImpl(Object[] items) { super(items); } } - + static class NamedGroupSeqCallImpl extends PlanCallImpl implements PlanNamedGroupSeq { NamedGroupSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class NamedGroupCallImpl extends PlanCallImpl implements PlanNamedGroup { NamedGroupCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class NamespaceBindingsSeqListImpl extends PlanSeqListImpl implements PlanNamespaceBindingsSeq { NamespaceBindingsSeqListImpl(Object[] items) { super(items); } } - + static class NamespaceBindingsSeqCallImpl extends PlanCallImpl implements PlanNamespaceBindingsSeq { NamespaceBindingsSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class NamespaceBindingsCallImpl extends PlanCallImpl implements PlanNamespaceBindings { NamespaceBindingsCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class ParamBindingSeqListImpl extends PlanSeqListImpl implements PlanParamBindingSeqVal { ParamBindingSeqListImpl(Object[] items) { super(items); } } - + static class ParamBindingSeqCallImpl extends PlanCallImpl implements PlanParamBindingSeqVal { ParamBindingSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class ParamBindingCallImpl extends PlanCallImpl implements PlanParamBindingVal { ParamBindingCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class RowColTypesSeqListImpl extends PlanSeqListImpl implements PlanRowColTypesSeq { RowColTypesSeqListImpl(Object[] items) { super(items); } } - + static class RowColTypesSeqCallImpl extends PlanCallImpl implements PlanRowColTypesSeq { RowColTypesSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class RowColTypesCallImpl extends PlanCallImpl implements PlanRowColTypes { RowColTypesCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class SchemaDefSeqListImpl extends PlanSeqListImpl implements PlanSchemaDefSeq { SchemaDefSeqListImpl(Object[] items) { super(items); } } - + static class SchemaDefSeqCallImpl extends PlanCallImpl implements PlanSchemaDefSeq { SchemaDefSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class SchemaDefCallImpl extends PlanCallImpl implements PlanSchemaDef { SchemaDefCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class SortKeySeqListImpl extends PlanSeqListImpl implements PlanSortKeySeq { SortKeySeqListImpl(Object[] items) { super(items); } } - + static class SortKeySeqCallImpl extends PlanCallImpl implements PlanSortKeySeq { SortKeySeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class SortKeyCallImpl extends PlanCallImpl implements PlanSortKey { SortKeyCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class SystemColumnSeqListImpl extends ColumnSeqListImpl implements PlanSystemColumnSeq { SystemColumnSeqListImpl(Object[] items) { super(items); } } - + static class SystemColumnSeqCallImpl extends ColumnCallImpl implements PlanSystemColumnSeq { SystemColumnSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class SystemColumnCallImpl extends ColumnCallImpl implements PlanSystemColumn { SystemColumnCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class TransformDefSeqListImpl extends PlanSeqListImpl implements PlanTransformDefSeq { TransformDefSeqListImpl(Object[] items) { super(items); } } - + static class TransformDefSeqCallImpl extends PlanCallImpl implements PlanTransformDefSeq { TransformDefSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class TransformDefCallImpl extends PlanCallImpl implements PlanTransformDef { TransformDefCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class TriplePatternSeqListImpl extends PlanSeqListImpl implements PlanTriplePatternSeq { TriplePatternSeqListImpl(Object[] items) { super(items); } } - + static class TriplePatternSeqCallImpl extends PlanCallImpl implements PlanTriplePatternSeq { TriplePatternSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class TriplePatternCallImpl extends PlanCallImpl implements PlanTriplePattern { TriplePatternCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class TriplePositionSeqListImpl extends PlanSeqListImpl implements PlanTriplePositionSeq { TriplePositionSeqListImpl(Object[] items) { super(items); } } - + static class TriplePositionSeqCallImpl extends PlanCallImpl implements PlanTriplePositionSeq { TriplePositionSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class TriplePositionCallImpl extends PlanCallImpl implements PlanTriplePosition { TriplePositionCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); @@ -1738,19 +1738,19 @@ static class TriplePositionCallImpl extends PlanCallImpl implements PlanTriplePo // nested type implementations - + static abstract class AccessPlanImpl extends PlanBuilderSubImpl.ModifyPlanSubImpl implements AccessPlan { AccessPlanImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(null, fnPrefix, fnName, fnArgs); } - + @Override public PlanColumn col(String column) { return col((column == null) ? (XsStringVal) null : xs.string(column)); } - + @Override public PlanColumn col(XsStringVal column) { if (column == null) { @@ -1759,7 +1759,7 @@ public PlanColumn col(XsStringVal column) { return new ColumnCallImpl("op", "col", new Object[]{ column }); } - + @Override public ModifyPlan sampleBy() { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "sample-by", new Object[]{ }); @@ -1767,22 +1767,22 @@ public ModifyPlan sampleBy() { } - + static abstract class ExportablePlanImpl extends PlanBuilderSubImpl.PlanSubImpl implements ExportablePlan { ExportablePlanImpl(PlanBaseImpl prior, String fnPrefix, String fnName, Object[] fnArgs) { super(prior, fnPrefix, fnName, fnArgs); } - + } - + static abstract class ModifyPlanImpl extends PlanBuilderSubImpl.PreparePlanSubImpl implements ModifyPlan { ModifyPlanImpl(PlanBaseImpl prior, String fnPrefix, String fnName, Object[] fnArgs) { super(prior, fnPrefix, fnName, fnArgs); } - + @Override public ModifyPlan bind(PlanExprColSeq columns) { if (columns == null) { @@ -1791,13 +1791,13 @@ public ModifyPlan bind(PlanExprColSeq columns) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "bind", new Object[]{ columns }); } - + @Override public ModifyPlan bindAs(String column, ServerExpression expression) { return bindAs((column == null) ? (PlanColumn) null : col(column), expression); } - + @Override public ModifyPlan bindAs(PlanColumn column, ServerExpression expression) { if (column == null) { @@ -1806,7 +1806,7 @@ public ModifyPlan bindAs(PlanColumn column, ServerExpression expression) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "bind-as", new Object[]{ column, expression }); } - + @Override public ModifyPlan except(ModifyPlan right) { if (right == null) { @@ -1815,7 +1815,7 @@ public ModifyPlan except(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "except", new Object[]{ right }); } - + @Override public ModifyPlan existsJoin(ModifyPlan right) { if (right == null) { @@ -1824,13 +1824,13 @@ public ModifyPlan existsJoin(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "exists-join", new Object[]{ right }); } - + @Override public ModifyPlan existsJoin(ModifyPlan right, PlanJoinKey... keys) { return existsJoin(right, new JoinKeySeqListImpl(keys)); } - + @Override public ModifyPlan existsJoin(ModifyPlan right, PlanJoinKeySeq keys) { if (right == null) { @@ -1839,13 +1839,13 @@ public ModifyPlan existsJoin(ModifyPlan right, PlanJoinKeySeq keys) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "exists-join", new Object[]{ right, keys }); } - + @Override public ModifyPlan existsJoin(ModifyPlan right, PlanJoinKeySeq keys, boolean condition) { return existsJoin(right, keys, xs.booleanVal(condition)); } - + @Override public ModifyPlan existsJoin(ModifyPlan right, PlanJoinKeySeq keys, ServerExpression condition) { if (right == null) { @@ -1854,19 +1854,19 @@ public ModifyPlan existsJoin(ModifyPlan right, PlanJoinKeySeq keys, ServerExpres return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "exists-join", new Object[]{ right, keys, condition }); } - + @Override public ModifyPlan groupBy(PlanExprColSeq keys) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "group-by", new Object[]{ keys }); } - + @Override public ModifyPlan groupBy(PlanExprColSeq keys, PlanAggregateColSeq aggregates) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "group-by", new Object[]{ keys, aggregates }); } - + @Override public ModifyPlan intersect(ModifyPlan right) { if (right == null) { @@ -1875,7 +1875,7 @@ public ModifyPlan intersect(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "intersect", new Object[]{ right }); } - + @Override public ModifyPlan joinCrossProduct(ModifyPlan right) { if (right == null) { @@ -1884,13 +1884,13 @@ public ModifyPlan joinCrossProduct(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-cross-product", new Object[]{ right }); } - + @Override public ModifyPlan joinCrossProduct(ModifyPlan right, boolean condition) { return joinCrossProduct(right, xs.booleanVal(condition)); } - + @Override public ModifyPlan joinCrossProduct(ModifyPlan right, ServerExpression condition) { if (right == null) { @@ -1899,13 +1899,13 @@ public ModifyPlan joinCrossProduct(ModifyPlan right, ServerExpression condition) return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-cross-product", new Object[]{ right, condition }); } - + @Override public ModifyPlan joinDoc(String docCol, String sourceCol) { return joinDoc((docCol == null) ? (PlanColumn) null : col(docCol), (sourceCol == null) ? (PlanColumn) null : col(sourceCol)); } - + @Override public ModifyPlan joinDoc(PlanColumn docCol, PlanColumn sourceCol) { if (docCol == null) { @@ -1917,13 +1917,13 @@ public ModifyPlan joinDoc(PlanColumn docCol, PlanColumn sourceCol) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-doc", new Object[]{ docCol, sourceCol }); } - + @Override public ModifyPlan joinDocAndUri(String docCol, String uriCol, String sourceCol) { return joinDocAndUri((docCol == null) ? (PlanColumn) null : col(docCol), (uriCol == null) ? (PlanColumn) null : col(uriCol), (sourceCol == null) ? (PlanColumn) null : col(sourceCol)); } - + @Override public ModifyPlan joinDocAndUri(PlanColumn docCol, PlanColumn uriCol, PlanColumn sourceCol) { if (docCol == null) { @@ -1938,13 +1938,13 @@ public ModifyPlan joinDocAndUri(PlanColumn docCol, PlanColumn uriCol, PlanColumn return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-doc-and-uri", new Object[]{ docCol, uriCol, sourceCol }); } - + @Override public ModifyPlan joinDocCols(PlanDocColsIdentifier cols, String docIdCol) { return joinDocCols(cols, (docIdCol == null) ? (PlanColumn) null : col(docIdCol)); } - + @Override public ModifyPlan joinDocCols(PlanDocColsIdentifier cols, PlanColumn docIdCol) { if (docIdCol == null) { @@ -1953,13 +1953,13 @@ public ModifyPlan joinDocCols(PlanDocColsIdentifier cols, PlanColumn docIdCol) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-doc-cols", new Object[]{ cols, docIdCol }); } - + @Override public ModifyPlan joinDocUri(String uriCol, String fragmentIdCol) { return joinDocUri((uriCol == null) ? (PlanColumn) null : col(uriCol), (fragmentIdCol == null) ? (PlanColumn) null : col(fragmentIdCol)); } - + @Override public ModifyPlan joinDocUri(PlanColumn uriCol, PlanColumn fragmentIdCol) { if (uriCol == null) { @@ -1971,7 +1971,7 @@ public ModifyPlan joinDocUri(PlanColumn uriCol, PlanColumn fragmentIdCol) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-doc-uri", new Object[]{ uriCol, fragmentIdCol }); } - + @Override public ModifyPlan joinFullOuter(ModifyPlan right) { if (right == null) { @@ -1980,13 +1980,13 @@ public ModifyPlan joinFullOuter(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-full-outer", new Object[]{ right }); } - + @Override public ModifyPlan joinFullOuter(ModifyPlan right, PlanJoinKey... keys) { return joinFullOuter(right, new JoinKeySeqListImpl(keys)); } - + @Override public ModifyPlan joinFullOuter(ModifyPlan right, PlanJoinKeySeq keys) { if (right == null) { @@ -1995,13 +1995,13 @@ public ModifyPlan joinFullOuter(ModifyPlan right, PlanJoinKeySeq keys) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-full-outer", new Object[]{ right, keys }); } - + @Override public ModifyPlan joinFullOuter(ModifyPlan right, PlanJoinKeySeq keys, boolean condition) { return joinFullOuter(right, keys, xs.booleanVal(condition)); } - + @Override public ModifyPlan joinFullOuter(ModifyPlan right, PlanJoinKeySeq keys, ServerExpression condition) { if (right == null) { @@ -2010,7 +2010,7 @@ public ModifyPlan joinFullOuter(ModifyPlan right, PlanJoinKeySeq keys, ServerExp return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-full-outer", new Object[]{ right, keys, condition }); } - + @Override public ModifyPlan joinInner(ModifyPlan right) { if (right == null) { @@ -2019,13 +2019,13 @@ public ModifyPlan joinInner(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-inner", new Object[]{ right }); } - + @Override public ModifyPlan joinInner(ModifyPlan right, PlanJoinKey... keys) { return joinInner(right, new JoinKeySeqListImpl(keys)); } - + @Override public ModifyPlan joinInner(ModifyPlan right, PlanJoinKeySeq keys) { if (right == null) { @@ -2034,13 +2034,13 @@ public ModifyPlan joinInner(ModifyPlan right, PlanJoinKeySeq keys) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-inner", new Object[]{ right, keys }); } - + @Override public ModifyPlan joinInner(ModifyPlan right, PlanJoinKeySeq keys, boolean condition) { return joinInner(right, keys, xs.booleanVal(condition)); } - + @Override public ModifyPlan joinInner(ModifyPlan right, PlanJoinKeySeq keys, ServerExpression condition) { if (right == null) { @@ -2049,7 +2049,7 @@ public ModifyPlan joinInner(ModifyPlan right, PlanJoinKeySeq keys, ServerExpress return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-inner", new Object[]{ right, keys, condition }); } - + @Override public ModifyPlan joinLeftOuter(ModifyPlan right) { if (right == null) { @@ -2058,13 +2058,13 @@ public ModifyPlan joinLeftOuter(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-left-outer", new Object[]{ right }); } - + @Override public ModifyPlan joinLeftOuter(ModifyPlan right, PlanJoinKey... keys) { return joinLeftOuter(right, new JoinKeySeqListImpl(keys)); } - + @Override public ModifyPlan joinLeftOuter(ModifyPlan right, PlanJoinKeySeq keys) { if (right == null) { @@ -2073,13 +2073,13 @@ public ModifyPlan joinLeftOuter(ModifyPlan right, PlanJoinKeySeq keys) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-left-outer", new Object[]{ right, keys }); } - + @Override public ModifyPlan joinLeftOuter(ModifyPlan right, PlanJoinKeySeq keys, boolean condition) { return joinLeftOuter(right, keys, xs.booleanVal(condition)); } - + @Override public ModifyPlan joinLeftOuter(ModifyPlan right, PlanJoinKeySeq keys, ServerExpression condition) { if (right == null) { @@ -2088,7 +2088,7 @@ public ModifyPlan joinLeftOuter(ModifyPlan right, PlanJoinKeySeq keys, ServerExp return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-left-outer", new Object[]{ right, keys, condition }); } - + @Override public ModifyPlan notExistsJoin(ModifyPlan right) { if (right == null) { @@ -2097,13 +2097,13 @@ public ModifyPlan notExistsJoin(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "not-exists-join", new Object[]{ right }); } - + @Override public ModifyPlan notExistsJoin(ModifyPlan right, PlanJoinKey... keys) { return notExistsJoin(right, new JoinKeySeqListImpl(keys)); } - + @Override public ModifyPlan notExistsJoin(ModifyPlan right, PlanJoinKeySeq keys) { if (right == null) { @@ -2112,13 +2112,13 @@ public ModifyPlan notExistsJoin(ModifyPlan right, PlanJoinKeySeq keys) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "not-exists-join", new Object[]{ right, keys }); } - + @Override public ModifyPlan notExistsJoin(ModifyPlan right, PlanJoinKeySeq keys, boolean condition) { return notExistsJoin(right, keys, xs.booleanVal(condition)); } - + @Override public ModifyPlan notExistsJoin(ModifyPlan right, PlanJoinKeySeq keys, ServerExpression condition) { if (right == null) { @@ -2127,13 +2127,13 @@ public ModifyPlan notExistsJoin(ModifyPlan right, PlanJoinKeySeq keys, ServerExp return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "not-exists-join", new Object[]{ right, keys, condition }); } - + @Override public ModifyPlan onError(String action) { return onError((action == null) ? (XsStringVal) null : xs.string(action)); } - + @Override public ModifyPlan onError(XsStringVal action) { if (action == null) { @@ -2142,13 +2142,13 @@ public ModifyPlan onError(XsStringVal action) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "on-error", new Object[]{ action }); } - + @Override public ModifyPlan onError(String action, String errorColumn) { return onError((action == null) ? (XsStringVal) null : xs.string(action), (errorColumn == null) ? (PlanExprCol) null : exprCol(errorColumn)); } - + @Override public ModifyPlan onError(XsStringVal action, PlanExprCol errorColumn) { if (action == null) { @@ -2157,7 +2157,7 @@ public ModifyPlan onError(XsStringVal action, PlanExprCol errorColumn) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "on-error", new Object[]{ action, errorColumn }); } - + @Override public ModifyPlan orderBy(PlanSortKeySeq keys) { if (keys == null) { @@ -2166,13 +2166,13 @@ public ModifyPlan orderBy(PlanSortKeySeq keys) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "order-by", new Object[]{ keys }); } - + @Override public PreparePlan prepare(int optimize) { return prepare(xs.intVal(optimize)); } - + @Override public PreparePlan prepare(XsIntVal optimize) { if (optimize == null) { @@ -2181,37 +2181,37 @@ public PreparePlan prepare(XsIntVal optimize) { return new PlanBuilderSubImpl.PreparePlanSubImpl(this, "op", "prepare", new Object[]{ optimize }); } - + @Override public ModifyPlan select(PlanExprCol... columns) { return select(new ExprColSeqListImpl(columns)); } - + @Override public ModifyPlan select(PlanExprColSeq columns) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "select", new Object[]{ columns }); } - + @Override public ModifyPlan select(PlanExprColSeq columns, String qualifierName) { return select(columns, (qualifierName == null) ? (XsStringVal) null : xs.string(qualifierName)); } - + @Override public ModifyPlan select(PlanExprColSeq columns, XsStringVal qualifierName) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "select", new Object[]{ columns, qualifierName }); } - + @Override public ModifyPlan shortestPath(String start, String end) { return shortestPath((start == null) ? (PlanExprCol) null : exprCol(start), (end == null) ? (PlanExprCol) null : exprCol(end)); } - + @Override public ModifyPlan shortestPath(PlanExprCol start, PlanExprCol end) { if (start == null) { @@ -2223,13 +2223,13 @@ public ModifyPlan shortestPath(PlanExprCol start, PlanExprCol end) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "shortest-path", new Object[]{ start, end }); } - + @Override public ModifyPlan shortestPath(String start, String end, String path) { return shortestPath((start == null) ? (PlanExprCol) null : exprCol(start), (end == null) ? (PlanExprCol) null : exprCol(end), (path == null) ? (PlanExprCol) null : exprCol(path)); } - + @Override public ModifyPlan shortestPath(PlanExprCol start, PlanExprCol end, PlanExprCol path) { if (start == null) { @@ -2241,7 +2241,7 @@ public ModifyPlan shortestPath(PlanExprCol start, PlanExprCol end, PlanExprCol p return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "shortest-path", new Object[]{ start, end, path }); } - + @Override public ModifyPlan shortestPath(String start, String end, String path, String length) { return shortestPath((start == null) ? (PlanExprCol) null : exprCol(start), (end == null) ? (PlanExprCol) null : exprCol(end), (path == null) ? (PlanExprCol) null : exprCol(path), (length == null) ? (PlanExprCol) null : exprCol(length)); @@ -2258,6 +2258,25 @@ public ModifyPlan shortestPath(PlanExprCol start, PlanExprCol end, PlanExprCol p return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "shortest-path", new Object[]{ start, end, path, length }); } + + @Override + public ModifyPlan shortestPath(String start, String end, String path, String length, String weight) { + return shortestPath((start == null) ? (PlanExprCol) null : exprCol(start), (end == null) ? (PlanExprCol) null : exprCol(end), (path == null) ? (PlanExprCol) null : exprCol(path), (length == null) ? (PlanExprCol) null : exprCol(length), (weight == null) ? (PlanExprCol) null : exprCol(weight)); + } + + + @Override + public ModifyPlan shortestPath(PlanExprCol start, PlanExprCol end, PlanExprCol path, PlanExprCol length, PlanExprCol weight) { + if (start == null) { + throw new IllegalArgumentException("start parameter for shortestPath() cannot be null"); + } + if (end == null) { + throw new IllegalArgumentException("end parameter for shortestPath() cannot be null"); + } + return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "shortest-path", new Object[]{ start, end, path, length, weight }); + } + + @Override public ModifyPlan union(ModifyPlan right) { if (right == null) { @@ -2266,13 +2285,13 @@ public ModifyPlan union(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "union", new Object[]{ right }); } - + @Override public ModifyPlan unnestInner(String inputColumn, String valueColumn) { return unnestInner((inputColumn == null) ? (PlanExprCol) null : exprCol(inputColumn), (valueColumn == null) ? (PlanExprCol) null : exprCol(valueColumn)); } - + @Override public ModifyPlan unnestInner(PlanExprCol inputColumn, PlanExprCol valueColumn) { if (inputColumn == null) { @@ -2284,13 +2303,13 @@ public ModifyPlan unnestInner(PlanExprCol inputColumn, PlanExprCol valueColumn) return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "unnest-inner", new Object[]{ inputColumn, valueColumn }); } - + @Override public ModifyPlan unnestInner(String inputColumn, String valueColumn, String ordinalColumn) { return unnestInner((inputColumn == null) ? (PlanExprCol) null : exprCol(inputColumn), (valueColumn == null) ? (PlanExprCol) null : exprCol(valueColumn), (ordinalColumn == null) ? (PlanExprCol) null : exprCol(ordinalColumn)); } - + @Override public ModifyPlan unnestInner(PlanExprCol inputColumn, PlanExprCol valueColumn, PlanExprCol ordinalColumn) { if (inputColumn == null) { @@ -2302,13 +2321,13 @@ public ModifyPlan unnestInner(PlanExprCol inputColumn, PlanExprCol valueColumn, return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "unnest-inner", new Object[]{ inputColumn, valueColumn, ordinalColumn }); } - + @Override public ModifyPlan unnestLeftOuter(String inputColumn, String valueColumn) { return unnestLeftOuter((inputColumn == null) ? (PlanExprCol) null : exprCol(inputColumn), (valueColumn == null) ? (PlanExprCol) null : exprCol(valueColumn)); } - + @Override public ModifyPlan unnestLeftOuter(PlanExprCol inputColumn, PlanExprCol valueColumn) { if (inputColumn == null) { @@ -2320,13 +2339,13 @@ public ModifyPlan unnestLeftOuter(PlanExprCol inputColumn, PlanExprCol valueColu return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "unnest-left-outer", new Object[]{ inputColumn, valueColumn }); } - + @Override public ModifyPlan unnestLeftOuter(String inputColumn, String valueColumn, String ordinalColumn) { return unnestLeftOuter((inputColumn == null) ? (PlanExprCol) null : exprCol(inputColumn), (valueColumn == null) ? (PlanExprCol) null : exprCol(valueColumn), (ordinalColumn == null) ? (PlanExprCol) null : exprCol(ordinalColumn)); } - + @Override public ModifyPlan unnestLeftOuter(PlanExprCol inputColumn, PlanExprCol valueColumn, PlanExprCol ordinalColumn) { if (inputColumn == null) { @@ -2338,13 +2357,13 @@ public ModifyPlan unnestLeftOuter(PlanExprCol inputColumn, PlanExprCol valueColu return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "unnest-left-outer", new Object[]{ inputColumn, valueColumn, ordinalColumn }); } - + @Override public ModifyPlan validateDoc(String validateDocCol, PlanSchemaDef schemaDef) { return validateDoc((validateDocCol == null) ? (PlanColumn) null : col(validateDocCol), schemaDef); } - + @Override public ModifyPlan validateDoc(PlanColumn validateDocCol, PlanSchemaDef schemaDef) { if (validateDocCol == null) { @@ -2356,19 +2375,19 @@ public ModifyPlan validateDoc(PlanColumn validateDocCol, PlanSchemaDef schemaDef return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "validate-doc", new Object[]{ validateDocCol, schemaDef }); } - + @Override public ModifyPlan whereDistinct() { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "where-distinct", new Object[]{ }); } - + @Override public ModifyPlan write() { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "write", new Object[]{ }); } - + @Override public ModifyPlan write(PlanDocColsIdentifier docCols) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "write", new Object[]{ docCols }); @@ -2376,22 +2395,22 @@ public ModifyPlan write(PlanDocColsIdentifier docCols) { } - + static abstract class PlanImpl extends PlanBaseImpl implements Plan { PlanImpl(PlanBaseImpl prior, String fnPrefix, String fnName, Object[] fnArgs) { super(prior, fnPrefix, fnName, fnArgs); } - + } - + static abstract class PreparePlanImpl extends PlanBuilderSubImpl.ExportablePlanSubImpl implements PreparePlan { PreparePlanImpl(PlanBaseImpl prior, String fnPrefix, String fnName, Object[] fnArgs) { super(prior, fnPrefix, fnName, fnArgs); } - + @Override public ExportablePlan map(PlanFunction func) { if (func == null) { @@ -2400,7 +2419,7 @@ public ExportablePlan map(PlanFunction func) { return new PlanBuilderSubImpl.ExportablePlanSubImpl(this, "op", "map", new Object[]{ func }); } - + @Override public ExportablePlan reduce(PlanFunction func) { if (func == null) { @@ -2409,13 +2428,13 @@ public ExportablePlan reduce(PlanFunction func) { return new PlanBuilderSubImpl.ExportablePlanSubImpl(this, "op", "reduce", new Object[]{ func }); } - + @Override public ExportablePlan reduce(PlanFunction func, String seed) { return reduce(func, (seed == null) ? (XsAnyAtomicTypeVal) null : xs.string(seed)); } - + @Override public ExportablePlan reduce(PlanFunction func, XsAnyAtomicTypeVal seed) { if (func == null) { diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/VecExprImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/VecExprImpl.java index 4aef59013..4225824e1 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/VecExprImpl.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/VecExprImpl.java @@ -26,186 +26,117 @@ class VecExprImpl implements VecExpr { VecExprImpl() { } - + @Override public ServerExpression add(ServerExpression vector1, ServerExpression vector2) { - if (vector1 == null) { - throw new IllegalArgumentException("vector1 parameter for add() cannot be null"); - } - if (vector2 == null) { - throw new IllegalArgumentException("vector2 parameter for add() cannot be null"); - } return new VectorCallImpl("vec", "add", new Object[]{ vector1, vector2 }); } - + @Override public ServerExpression base64Decode(ServerExpression base64Vector) { - if (base64Vector == null) { - throw new IllegalArgumentException("base64Vector parameter for base64Decode() cannot be null"); - } return new VectorCallImpl("vec", "base64-decode", new Object[]{ base64Vector }); } - + @Override public ServerExpression base64Encode(ServerExpression vector1) { - if (vector1 == null) { - throw new IllegalArgumentException("vector1 parameter for base64Encode() cannot be null"); - } return new XsExprImpl.StringCallImpl("vec", "base64-encode", new Object[]{ vector1 }); } - + @Override - public ServerExpression cosine(ServerExpression vector1, ServerExpression vector2) { - if (vector1 == null) { - throw new IllegalArgumentException("vector1 parameter for cosine() cannot be null"); - } - if (vector2 == null) { - throw new IllegalArgumentException("vector2 parameter for cosine() cannot be null"); - } - return new XsExprImpl.DoubleCallImpl("vec", "cosine", new Object[]{ vector1, vector2 }); + public ServerExpression cosine(ServerExpression arg1, ServerExpression arg2) { + return new XsExprImpl.DoubleCallImpl("vec", "cosine", new Object[]{ arg1, arg2 }); } + + @Override + public ServerExpression cosineDistance(ServerExpression arg1, ServerExpression arg2) { + return new XsExprImpl.DoubleCallImpl("vec", "cosine-distance", new Object[]{ arg1, arg2 }); + } + @Override public ServerExpression dimension(ServerExpression vector1) { - if (vector1 == null) { - throw new IllegalArgumentException("vector1 parameter for dimension() cannot be null"); - } return new XsExprImpl.UnsignedIntCallImpl("vec", "dimension", new Object[]{ vector1 }); } - + @Override public ServerExpression dotProduct(ServerExpression vector1, ServerExpression vector2) { - if (vector1 == null) { - throw new IllegalArgumentException("vector1 parameter for dotProduct() cannot be null"); - } - if (vector2 == null) { - throw new IllegalArgumentException("vector2 parameter for dotProduct() cannot be null"); - } return new XsExprImpl.DoubleCallImpl("vec", "dot-product", new Object[]{ vector1, vector2 }); } - + @Override public ServerExpression euclideanDistance(ServerExpression vector1, ServerExpression vector2) { - if (vector1 == null) { - throw new IllegalArgumentException("vector1 parameter for euclideanDistance() cannot be null"); - } - if (vector2 == null) { - throw new IllegalArgumentException("vector2 parameter for euclideanDistance() cannot be null"); - } return new XsExprImpl.DoubleCallImpl("vec", "euclidean-distance", new Object[]{ vector1, vector2 }); } - + @Override public ServerExpression get(ServerExpression vector1, ServerExpression k) { - if (vector1 == null) { - throw new IllegalArgumentException("vector1 parameter for get() cannot be null"); - } - if (k == null) { - throw new IllegalArgumentException("k parameter for get() cannot be null"); - } return new XsExprImpl.FloatCallImpl("vec", "get", new Object[]{ vector1, k }); } - + @Override public ServerExpression magnitude(ServerExpression vector1) { - if (vector1 == null) { - throw new IllegalArgumentException("vector1 parameter for magnitude() cannot be null"); - } return new XsExprImpl.DoubleCallImpl("vec", "magnitude", new Object[]{ vector1 }); } - + @Override public ServerExpression normalize(ServerExpression vector1) { - if (vector1 == null) { - throw new IllegalArgumentException("vector1 parameter for normalize() cannot be null"); - } return new VectorCallImpl("vec", "normalize", new Object[]{ vector1 }); } - + @Override public ServerExpression subtract(ServerExpression vector1, ServerExpression vector2) { - if (vector1 == null) { - throw new IllegalArgumentException("vector1 parameter for subtract() cannot be null"); - } - if (vector2 == null) { - throw new IllegalArgumentException("vector2 parameter for subtract() cannot be null"); - } return new VectorCallImpl("vec", "subtract", new Object[]{ vector1, vector2 }); } - + @Override public ServerExpression subvector(ServerExpression vector, ServerExpression start) { - if (vector == null) { - throw new IllegalArgumentException("vector parameter for subvector() cannot be null"); - } - if (start == null) { - throw new IllegalArgumentException("start parameter for subvector() cannot be null"); - } return new VectorCallImpl("vec", "subvector", new Object[]{ vector, start }); } - + @Override public ServerExpression subvector(ServerExpression vector, ServerExpression start, ServerExpression length) { - if (vector == null) { - throw new IllegalArgumentException("vector parameter for subvector() cannot be null"); - } - if (start == null) { - throw new IllegalArgumentException("start parameter for subvector() cannot be null"); - } return new VectorCallImpl("vec", "subvector", new Object[]{ vector, start, length }); } - + @Override public ServerExpression vector(ServerExpression values) { return new VectorCallImpl("vec", "vector", new Object[]{ values }); } - + @Override public ServerExpression vectorScore(ServerExpression score, double similarity) { return vectorScore(score, xs.doubleVal(similarity)); } - + @Override public ServerExpression vectorScore(ServerExpression score, ServerExpression similarity) { - if (score == null) { - throw new IllegalArgumentException("score parameter for vectorScore() cannot be null"); - } - if (similarity == null) { - throw new IllegalArgumentException("similarity parameter for vectorScore() cannot be null"); - } return new XsExprImpl.UnsignedLongCallImpl("vec", "vector-score", new Object[]{ score, similarity }); } - + @Override public ServerExpression vectorScore(ServerExpression score, double similarity, double similarityWeight) { return vectorScore(score, xs.doubleVal(similarity), xs.doubleVal(similarityWeight)); } - + @Override public ServerExpression vectorScore(ServerExpression score, ServerExpression similarity, ServerExpression similarityWeight) { - if (score == null) { - throw new IllegalArgumentException("score parameter for vectorScore() cannot be null"); - } - if (similarity == null) { - throw new IllegalArgumentException("similarity parameter for vectorScore() cannot be null"); - } return new XsExprImpl.UnsignedLongCallImpl("vec", "vector-score", new Object[]{ score, similarity, similarityWeight }); } diff --git a/marklogic-client-api/src/main/javadoc/doc-files/types/vec_vector.html b/marklogic-client-api/src/main/javadoc/doc-files/types/vec_vector.html index 3a45537c7..025c925da 100644 --- a/marklogic-client-api/src/main/javadoc/doc-files/types/vec_vector.html +++ b/marklogic-client-api/src/main/javadoc/doc-files/types/vec_vector.html @@ -18,68 +18,74 @@ Server Doc - vec:vector - vec:add(vec:vector vector1, vec:vector vector2) + vec:vector? + vec:add(vec:vector vector1?, vec:vector vector2?) java server - xs:string - vec:base64-encode(vec:vector vector1) + xs:string? + vec:base64-encode(vec:vector vector1?) java server - xs:double - vec:cosine-similarity(vec:vector vector1, vec:vector vector2) - java - server + xs:double? + vec:cosine-distance(vec:vector arg1?, vec:vector arg2?) + java + server - xs:unsignedInt - vec:dimension(vec:vector vector1) + xs:double? + vec:cosine(vec:vector arg1?, vec:vector arg2?) + java + server + + + xs:unsignedInt? + vec:dimension(vec:vector vector1?) java server - - xs:double - vec:dot-product(vec:vector vector1, vec:vector vector2) + + xs:double? + vec:dot-product(vec:vector vector1?, vec:vector vector2?) java server - - xs:double - vec:euclidean-distance(vec:vector vector1, vec:vector vector2) + + xs:double? + vec:euclidean-distance(vec:vector vector1?, vec:vector vector2?) java server - - xs:float - vec:get(vec:vector vector1, xs:unsignedInt k) + + xs:float? + vec:get(vec:vector vector1?, xs:unsignedInt k?) java server - - xs:double - vec:magnitude(vec:vector vector1) + + xs:double? + vec:magnitude(vec:vector vector1?) java server - - vec:vector - vec:normalize(vec:vector vector1) + + vec:vector? + vec:normalize(vec:vector vector1?) java server - - vec:vector - vec:subtract(vec:vector vector1, vec:vector vector2) + + vec:vector? + vec:subtract(vec:vector vector1?, vec:vector vector2?) java server - - vec:vector - vec:subvector(vec:vector vector, xs:unsignedInt start, xs:unsignedInt length?) + + vec:vector? + vec:subvector(vec:vector vector?, xs:unsignedInt start?, xs:unsignedInt length?) java server @@ -90,32 +96,32 @@ Server Doc - vec:vector - vec:add(vec:vector vector1, vec:vector vector2) + vec:vector? + vec:add(vec:vector vector1?, vec:vector vector2?) java server - vec:vector - vec:base64-decode(xs:string base64-vector) + vec:vector? + vec:base64-decode(xs:string base64-vector?) java server - vec:vector - vec:normalize(vec:vector vector1) + vec:vector? + vec:normalize(vec:vector vector1?) java server - vec:vector - vec:subtract(vec:vector vector1, vec:vector vector2) + vec:vector? + vec:subtract(vec:vector vector1?, vec:vector vector2?) java server - vec:vector - vec:subvector(vec:vector vector, xs:unsignedInt start, xs:unsignedInt length?) + vec:vector? + vec:subvector(vec:vector vector?, xs:unsignedInt start?, xs:unsignedInt length?) java server diff --git a/marklogic-client-api/src/main/javadoc/doc-files/types/xs_double.html b/marklogic-client-api/src/main/javadoc/doc-files/types/xs_double.html index 00ac690e6..d3374c227 100644 --- a/marklogic-client-api/src/main/javadoc/doc-files/types/xs_double.html +++ b/marklogic-client-api/src/main/javadoc/doc-files/types/xs_double.html @@ -209,7 +209,7 @@ cts:point - cts:point(xs:double latitude, xs:double longitude) + cts:point(xs:double latitude-or-wkt, xs:double longitude) java server @@ -436,8 +436,8 @@ server - xs:unsignedLong - vec:vector-score(xs:unsignedInt score, xs:double similarity, xs:double similarityWeight?) + xs:unsignedLong? + vec:vector-score(xs:unsignedInt score?, xs:double similarity?, xs:double similarityWeight?) java server @@ -718,26 +718,32 @@ server - xs:double - vec:cosine-similarity(vec:vector vector1, vec:vector vector2) - java - server + xs:double? + vec:cosine-distance(vec:vector arg1?, vec:vector arg2?) + java + server - xs:double - vec:dot-product(vec:vector vector1, vec:vector vector2) + xs:double? + vec:cosine(vec:vector arg1?, vec:vector arg2?) + java + server + + + xs:double? + vec:dot-product(vec:vector vector1?, vec:vector vector2?) java server - - xs:double - vec:euclidean-distance(vec:vector vector1, vec:vector vector2) + + xs:double? + vec:euclidean-distance(vec:vector vector1?, vec:vector vector2?) java server - - xs:double - vec:magnitude(vec:vector vector1) + + xs:double? + vec:magnitude(vec:vector vector1?) java server diff --git a/marklogic-client-api/src/main/javadoc/doc-files/types/xs_float.html b/marklogic-client-api/src/main/javadoc/doc-files/types/xs_float.html index 32a35a964..ece01561b 100644 --- a/marklogic-client-api/src/main/javadoc/doc-files/types/xs_float.html +++ b/marklogic-client-api/src/main/javadoc/doc-files/types/xs_float.html @@ -28,8 +28,8 @@ Server Doc - xs:float - vec:get(vec:vector vector1, xs:unsignedInt k) + xs:float? + vec:get(vec:vector vector1?, xs:unsignedInt k?) java server diff --git a/marklogic-client-api/src/main/javadoc/doc-files/types/xs_string.html b/marklogic-client-api/src/main/javadoc/doc-files/types/xs_string.html index c355557c1..751e82349 100644 --- a/marklogic-client-api/src/main/javadoc/doc-files/types/xs_string.html +++ b/marklogic-client-api/src/main/javadoc/doc-files/types/xs_string.html @@ -1206,8 +1206,8 @@ server - vec:vector - vec:base64-decode(xs:string base64-vector) + vec:vector? + vec:base64-decode(xs:string base64-vector?) java server @@ -1746,8 +1746,8 @@ server - xs:string - vec:base64-encode(vec:vector vector1) + xs:string? + vec:base64-encode(vec:vector vector1?) java server diff --git a/marklogic-client-api/src/main/javadoc/doc-files/types/xs_unsignedInt.html b/marklogic-client-api/src/main/javadoc/doc-files/types/xs_unsignedInt.html index bda13b59e..79b151ca3 100644 --- a/marklogic-client-api/src/main/javadoc/doc-files/types/xs_unsignedInt.html +++ b/marklogic-client-api/src/main/javadoc/doc-files/types/xs_unsignedInt.html @@ -34,20 +34,20 @@ server - xs:float - vec:get(vec:vector vector1, xs:unsignedInt k) + xs:float? + vec:get(vec:vector vector1?, xs:unsignedInt k?) java server - vec:vector - vec:subvector(vec:vector vector, xs:unsignedInt start, xs:unsignedInt length?) + vec:vector? + vec:subvector(vec:vector vector?, xs:unsignedInt start?, xs:unsignedInt length?) java server - xs:unsignedLong - vec:vector-score(xs:unsignedInt score, xs:double similarity, xs:double similarityWeight?) + xs:unsignedLong? + vec:vector-score(xs:unsignedInt score?, xs:double similarity?, xs:double similarityWeight?) java server @@ -76,8 +76,8 @@ server - xs:unsignedInt - vec:dimension(vec:vector vector1) + xs:unsignedInt? + vec:dimension(vec:vector vector1?) java server diff --git a/marklogic-client-api/src/main/javadoc/doc-files/types/xs_unsignedLong.html b/marklogic-client-api/src/main/javadoc/doc-files/types/xs_unsignedLong.html index da90b9bb0..08f801e65 100644 --- a/marklogic-client-api/src/main/javadoc/doc-files/types/xs_unsignedLong.html +++ b/marklogic-client-api/src/main/javadoc/doc-files/types/xs_unsignedLong.html @@ -208,8 +208,8 @@ server - xs:unsignedLong - vec:vector-score(xs:unsignedInt score, xs:double similarity, xs:double similarityWeight?) + xs:unsignedLong? + vec:vector-score(xs:unsignedInt score?, xs:double similarity?, xs:double similarityWeight?) java server diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/rows/VectorTest.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/rows/VectorTest.java index 1cfe50892..16e3ded61 100644 --- a/marklogic-client-api/src/test/java/com/marklogic/client/test/rows/VectorTest.java +++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/rows/VectorTest.java @@ -39,8 +39,10 @@ void beforeEach() { void vectorFunctionsHappyPath() { PlanBuilder.ModifyPlan plan = op.fromView("vectors", "persons") + .limit(1) .bind(op.as("sampleVector", op.vec.vector(sampleVector))) .bind(op.as("cosine", op.vec.cosine(op.col("embedding"), op.col("sampleVector")))) + .bind(op.as("cosineDistance", op.vec.cosineDistance(op.col("sampleVector"), op.col("sampleVector")))) .bind(op.as("dotProduct", op.vec.dotProduct(op.col("embedding"), op.col("sampleVector")))) .bind(op.as("euclideanDistance", op.vec.euclideanDistance(op.col("embedding"), op.col("sampleVector")))) .bind(op.as("dimension", op.vec.dimension(op.col("sampleVector")))) @@ -53,37 +55,49 @@ void vectorFunctionsHappyPath() { .bind(op.as("base64Decode", op.vec.base64Decode(op.col("base64Encode")))) .bind(op.as("subVector", op.vec.subvector(op.col("sampleVector"), op.xs.integer(1), op.xs.integer(1)))) .bind(op.as("vectorScore", op.vec.vectorScore(op.xs.unsignedInt(1), op.xs.doubleVal(0.5)))) - .select( - op.col("cosine"), op.col("dotProduct"), op.col("euclideanDistance"), - op.col("name"), op.col("dimension"), op.col("normalize"), - op.col("magnitude"), op.col("get"), op.col("add"), op.col("subtract"), - op.col("base64Encode"), op.col("base64Decode"), op.col("subVector"), op.col("vectorScore") - ) - .limit(5); + .bind(op.as("simpleVectorScore", op.vec.vectorScore(op.xs.unsignedInt(1), 0.5, 1))) + .bind(op.as("simplestVectorScore", op.vec.vectorScore(op.xs.unsignedInt(1), 0.5))); + List rows = resultRows(plan); - assertEquals(2, rows.size()); + assertEquals(1, rows.size()); + RowRecord row = rows.get(0); + + // Simple sanity checks to verify that the functions ran. + double cosine = row.getDouble("cosine"); + assertTrue((cosine > 0) && (cosine < 1), "Unexpected value: " + cosine); + double dotProduct = row.getDouble("dotProduct"); + Assertions.assertTrue(dotProduct > 0, "Unexpected value: " + dotProduct); + double euclideanDistance = row.getDouble("euclideanDistance"); + Assertions.assertTrue(euclideanDistance > 0, "Unexpected value: " + euclideanDistance); + assertEquals(3, row.getInt("dimension")); + assertEquals(3, ((ArrayNode) row.get("normalize")).size()); + double magnitude = row.getDouble("magnitude"); + assertTrue(magnitude > 0, "Unexpected value: " + magnitude); + assertEquals(3, ((ArrayNode) row.get("add")).size()); + assertEquals(3, ((ArrayNode) row.get("subtract")).size()); + assertFalse(row.getString("base64Encode").isEmpty()); + assertEquals(3, ((ArrayNode) row.get("base64Decode")).size()); + assertEquals(5.6, row.getDouble("get")); + assertEquals(1, ((ArrayNode) row.get("subVector")).size()); + assertEquals(333333.0, row.getDouble("vectorScore")); + assertEquals(666666.0, row.getDouble("simpleVectorScore")); + assertEquals(333333.0, row.getDouble("simplestVectorScore")); + } - rows.forEach(row -> { -// Simple a sanity checks to verify that the functions ran. Very little concern about the actual return values. - double cosine = row.getDouble("cosine"); - assertTrue((cosine > 0) && (cosine < 1), "Unexpected value: " + cosine); - double dotProduct = row.getDouble("dotProduct"); - Assertions.assertTrue(dotProduct > 0, "Unexpected value: " + dotProduct); - double euclideanDistance = row.getDouble("euclideanDistance"); - Assertions.assertTrue(euclideanDistance > 0, "Unexpected value: " + euclideanDistance); - assertEquals(3, row.getInt("dimension")); - assertEquals(3, ((ArrayNode) row.get("normalize")).size()); - double magnitude = row.getDouble("magnitude"); - assertTrue(magnitude > 0, "Unexpected value: " + magnitude); - assertEquals(3, ((ArrayNode) row.get("add")).size()); - assertEquals(3, ((ArrayNode) row.get("subtract")).size()); - assertFalse(row.getString("base64Encode").isEmpty()); - assertEquals(3, ((ArrayNode) row.get("base64Decode")).size()); - assertEquals(5.6, row.getDouble("get")); - assertEquals(1, ((ArrayNode) row.get("subVector")).size()); - double vectorScore = row.getDouble("vectorScore"); - assertTrue(vectorScore > 0, "Unexpected value: " + vectorScore); - }); + /** + * Vector data was copied from a test in the qa repo. + */ + @Test + void cosineDistance() { + PlanBuilder.ModifyPlan plan = op.fromView("vectors", "persons") + .limit(1) + .bind(op.as("vector1", op.vec.vector(op.xs.doubleSeq(0.000000000001, 0.000000000002, -0.425769090652466, -0.0558725222945213, 0.466461688280106, -0.488394349813461)))) + .bind(op.as("vector2", op.vec.vector(op.xs.doubleSeq(0.000000000002, -0.425769090652466, -0.0558725222945213, 0.466461688280106, -0.488394349813461, -0.0558725222945213)))) + .bind(op.as("cosineDistance", op.vec.cosineDistance(op.col("vector1"), op.col("vector2")))); + + List rows = resultRows(plan); + assertEquals(1, rows.size()); + assertEquals(1.31585550308228, rows.get(0).getDouble("cosineDistance"), 0.1); } @Test @@ -113,9 +127,6 @@ void cosine_InvalidVector() { } @Test - // As of 07/26/24, this test will fail with the ML12 develop branch. - // However, it will succeed with the 12ea1 build. - // See https://progresssoftware.atlassian.net/browse/MLE-15707 void bindVectorFromDocs() { PlanBuilder.ModifyPlan plan = op.fromSearchDocs( @@ -131,8 +142,6 @@ void bindVectorFromDocs() { assertEquals(1, rows.size()); } - // This is passing locally when running 12-nightly on Docker, but has been failing on Jenkins since it was - // introduced on Nov 5th. Created https://progresssoftware.atlassian.net/browse/MLE-17964 to track it. @Test void vecVectorWithCol() { String query = "op.fromView('vectors', 'persons').limit(2).bind(op.as('summaryCosineSim', op.vec.vector(op.col('embedding'))))";