diff --git a/Microsoft.Azure.Cosmos/src/ClientResources.Designer.cs b/Microsoft.Azure.Cosmos/src/ClientResources.Designer.cs
index 3736d0fbbd..30604d77d4 100644
--- a/Microsoft.Azure.Cosmos/src/ClientResources.Designer.cs
+++ b/Microsoft.Azure.Cosmos/src/ClientResources.Designer.cs
@@ -19,7 +19,7 @@ namespace Microsoft.Azure.Cosmos {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class ClientResources {
@@ -438,6 +438,15 @@ internal static string InvalidTypesForMethod {
}
}
+ ///
+ /// Looks up a localized string similar to Extension function can be used in Linq expressions only and are evaluated in Azure CosmosDB server..
+ ///
+ internal static string LINQExtensionFunctionNotImplemented {
+ get {
+ return ResourceManager.GetString("LINQExtensionFunctionNotImplemented", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to MediaLink is invalid.
///
@@ -565,38 +574,38 @@ internal static string ServerResponseDeserializationFailure {
}
///
- /// Looks up a localized string similar to The right hand side of string.CompareTo() comparison must be constant '0'.
+ /// Looks up a localized string similar to The right-hand side of String.Compare() comparison must be constant '0'..
///
- internal static string StringCompareToInvalidConstant {
+ internal static string StringCompareInvalidConstant {
get {
- return ResourceManager.GetString("StringCompareToInvalidConstant", resourceCulture);
+ return ResourceManager.GetString("StringCompareInvalidConstant", resourceCulture);
}
}
///
- /// Looks up a localized string similar to Invalid operator for string.CompareTo(). Vaid operators are ('==', '<', '<=', '>' or '>=').
+ /// Looks up a localized string similar to Invalid operator for string.Compare(). Vaid operators are ('==', '<', '<=', '>' or '>=').
///
- internal static string StringCompareToInvalidOperator {
+ internal static string StringCompareInvalidOperator {
get {
- return ResourceManager.GetString("StringCompareToInvalidOperator", resourceCulture);
+ return ResourceManager.GetString("StringCompareInvalidOperator", resourceCulture);
}
}
///
- /// Looks up a localized string similar to Invalid operator for string.Compare(). Valid operators are ('==', '<', '<=', '>' or '>=').
+ /// Looks up a localized string similar to The right-hand side of String.CompareTo() comparison must be constant '0'..
///
- internal static string StringCompareInvalidOperator {
+ internal static string StringCompareToInvalidConstant {
get {
- return ResourceManager.GetString("StringCompareInvalidOperator", resourceCulture);
+ return ResourceManager.GetString("StringCompareToInvalidConstant", resourceCulture);
}
}
///
- /// Looks up a localized string similar to The right hand side of string.Compare() comparison must be constant '0'.
+ /// Looks up a localized string similar to Invalid operator for string.CompareTo(). Vaid operators are ('==', '<', '<=', '>' or '>=').
///
- internal static string StringCompareInvalidConstant {
+ internal static string StringCompareToInvalidOperator {
get {
- return ResourceManager.GetString("StringCompareInvalidConstant", resourceCulture);
+ return ResourceManager.GetString("StringCompareToInvalidOperator", resourceCulture);
}
}
diff --git a/Microsoft.Azure.Cosmos/src/ClientResources.resx b/Microsoft.Azure.Cosmos/src/ClientResources.resx
index 7a3e336e2a..c1b07762cb 100644
--- a/Microsoft.Azure.Cosmos/src/ClientResources.resx
+++ b/Microsoft.Azure.Cosmos/src/ClientResources.resx
@@ -324,4 +324,7 @@
The continuation was generated for container {0} but current container is {1}.
+
+ Extension function can be used in Linq expressions only and are evaluated in Azure CosmosDB server.
+
\ No newline at end of file
diff --git a/Microsoft.Azure.Cosmos/src/Linq/BuiltinFunctions/BuiltinFunctionVisitor.cs b/Microsoft.Azure.Cosmos/src/Linq/BuiltinFunctions/BuiltinFunctionVisitor.cs
index 82f427c206..3dbbedce16 100644
--- a/Microsoft.Azure.Cosmos/src/Linq/BuiltinFunctions/BuiltinFunctionVisitor.cs
+++ b/Microsoft.Azure.Cosmos/src/Linq/BuiltinFunctions/BuiltinFunctionVisitor.cs
@@ -51,7 +51,10 @@ public static SqlScalarExpression VisitBuiltinFunctionCall(MethodCallExpression
if (methodCallExpression.Method.DeclaringType.GeUnderlyingSystemType() == typeof(CosmosLinqExtensions))
{
// CosmosLinq Extensions can be RegexMatch, DocumentId or Type check functions (IsString, IsBool, etc.)
- if (methodCallExpression.Method.Name == nameof(CosmosLinqExtensions.RegexMatch))
+ if ((methodCallExpression.Method.Name == nameof(CosmosLinqExtensions.RegexMatch)) ||
+ (methodCallExpression.Method.Name == nameof(CosmosLinqExtensions.FullTextContains)) ||
+ (methodCallExpression.Method.Name == nameof(CosmosLinqExtensions.FullTextContainsAll)) ||
+ (methodCallExpression.Method.Name == nameof(CosmosLinqExtensions.FullTextContainsAny)))
{
return StringBuiltinFunctions.Visit(methodCallExpression, context);
}
diff --git a/Microsoft.Azure.Cosmos/src/Linq/BuiltinFunctions/SqlBuiltinFunctionVisitor.cs b/Microsoft.Azure.Cosmos/src/Linq/BuiltinFunctions/SqlBuiltinFunctionVisitor.cs
index 2e45453147..347811ae9e 100644
Binary files a/Microsoft.Azure.Cosmos/src/Linq/BuiltinFunctions/SqlBuiltinFunctionVisitor.cs and b/Microsoft.Azure.Cosmos/src/Linq/BuiltinFunctions/SqlBuiltinFunctionVisitor.cs differ
diff --git a/Microsoft.Azure.Cosmos/src/Linq/BuiltinFunctions/StringBuiltinFunctions.cs b/Microsoft.Azure.Cosmos/src/Linq/BuiltinFunctions/StringBuiltinFunctions.cs
index 7d833a03bd..02b48cff7b 100644
--- a/Microsoft.Azure.Cosmos/src/Linq/BuiltinFunctions/StringBuiltinFunctions.cs
+++ b/Microsoft.Azure.Cosmos/src/Linq/BuiltinFunctions/StringBuiltinFunctions.cs
@@ -423,6 +423,91 @@ protected override SqlScalarExpression VisitImplicit(MethodCallExpression method
return null;
}
}
+
+ private class FullTextContainsVisit : SqlBuiltinFunctionVisitor
+ {
+ public FullTextContainsVisit()
+ : base("FullTextContains",
+ true,
+ new List()
+ {
+ new Type[]{typeof(object), typeof(string)}
+ })
+ {
+ }
+ }
+
+ private class FullTextContainsAllVisit : SqlBuiltinFunctionVisitor
+ {
+ public FullTextContainsAllVisit()
+ : base("FullTextContainsAll",
+ true,
+ new List()
+ {
+ new Type[]{typeof(object), typeof(string[])}
+ })
+ {
+ }
+
+ protected override SqlScalarExpression VisitImplicit(MethodCallExpression methodCallExpression, TranslationContext context)
+ {
+ Console.WriteLine(methodCallExpression.Arguments[1].Type);
+ if (methodCallExpression.Arguments.Count == 2
+ && methodCallExpression.Arguments[1] is ConstantExpression stringListArgumentExpression
+ && ExpressionToSql.VisitConstant(stringListArgumentExpression, context) is SqlArrayCreateScalarExpression arrayScalarExpressions)
+ {
+ List arguments = new List();
+
+ arguments.Add(ExpressionToSql.VisitNonSubqueryScalarExpression(methodCallExpression.Arguments[0], context));
+ arguments.AddRange(arrayScalarExpressions.Items);
+
+ return SqlFunctionCallScalarExpression.CreateBuiltin(SqlFunctionCallScalarExpression.Names.FullTextContainsAll, arguments.ToImmutableArray());
+ }
+
+ return null;
+ }
+
+ protected override SqlScalarExpression VisitExplicit(MethodCallExpression methodCallExpression, TranslationContext context)
+ {
+ return null;
+ }
+ }
+
+ private class FullTextContainsAnyVisit : SqlBuiltinFunctionVisitor
+ {
+ public FullTextContainsAnyVisit()
+ : base("FullTextContainsAny",
+ true,
+ new List()
+ {
+ new Type[]{typeof(object), typeof(string[])}
+ })
+ {
+ }
+
+ protected override SqlScalarExpression VisitImplicit(MethodCallExpression methodCallExpression, TranslationContext context)
+ {
+ Console.WriteLine(methodCallExpression.Arguments[1].Type);
+ if (methodCallExpression.Arguments.Count == 2
+ && methodCallExpression.Arguments[1] is ConstantExpression stringListArgumentExpression
+ && ExpressionToSql.VisitConstant(stringListArgumentExpression, context) is SqlArrayCreateScalarExpression arrayScalarExpressions)
+ {
+ List arguments = new List();
+
+ arguments.Add(ExpressionToSql.VisitNonSubqueryScalarExpression(methodCallExpression.Arguments[0], context));
+ arguments.AddRange(arrayScalarExpressions.Items);
+
+ return SqlFunctionCallScalarExpression.CreateBuiltin(SqlFunctionCallScalarExpression.Names.FullTextContainsAny, arguments.ToImmutableArray());
+ }
+
+ return null;
+ }
+
+ protected override SqlScalarExpression VisitExplicit(MethodCallExpression methodCallExpression, TranslationContext context)
+ {
+ return null;
+ }
+ }
static StringBuiltinFunctions()
{
@@ -528,6 +613,18 @@ static StringBuiltinFunctions()
{
"Equals",
new StringEqualsVisitor()
+ },
+ {
+ nameof(CosmosLinqExtensions.FullTextContains),
+ new FullTextContainsVisit()
+ },
+ {
+ nameof(CosmosLinqExtensions.FullTextContainsAll),
+ new FullTextContainsAllVisit()
+ },
+ {
+ nameof(CosmosLinqExtensions.FullTextContainsAny),
+ new FullTextContainsAnyVisit()
}
};
}
diff --git a/Microsoft.Azure.Cosmos/src/Linq/CosmosLinqExtensions.cs b/Microsoft.Azure.Cosmos/src/Linq/CosmosLinqExtensions.cs
index a45b282d15..58998a2a52 100644
--- a/Microsoft.Azure.Cosmos/src/Linq/CosmosLinqExtensions.cs
+++ b/Microsoft.Azure.Cosmos/src/Linq/CosmosLinqExtensions.cs
@@ -212,7 +212,7 @@ public static bool IsString(this object obj)
///
public static bool RegexMatch(this object obj, string regularExpression)
{
- throw new NotImplementedException(ClientResources.TypeCheckExtensionFunctionsNotImplemented);
+ throw new NotImplementedException(ClientResources.LINQExtensionFunctionNotImplemented);
}
///
@@ -234,9 +234,72 @@ public static bool RegexMatch(this object obj, string regularExpression)
///
public static bool RegexMatch(this object obj, string regularExpression, string searchModifier)
{
- throw new NotImplementedException(ClientResources.TypeCheckExtensionFunctionsNotImplemented);
- }
-
+ throw new NotImplementedException(ClientResources.LINQExtensionFunctionNotImplemented);
+ }
+
+ ///
+ /// Returns a boolean indicating whether the keyword string expression is contained in a specified property path.
+ /// For more information, see https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/query/fulltextcontains.
+ /// This method is to be used in LINQ expressions only and will be evaluated on server.
+ /// There's no implementation provided in the client library.
+ ///
+ ///
+ /// The string to find.
+ /// Returns true if a given string is contained in the specified property of a document.
+ ///
+ ///
+ /// document.Name.FullTextContains());
+ /// ]]>
+ ///
+ ///
+ public static bool FullTextContains(this object obj, string search)
+ {
+ throw new NotImplementedException(ClientResources.LINQExtensionFunctionNotImplemented);
+ }
+
+ ///
+ /// Returns a boolean indicating whether all of the provided string expressions are contained in a specified property path.
+ /// For more information, see https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/query/fulltextcontainsall.
+ /// This method is to be used in LINQ expressions only and will be evaluated on server.
+ /// There's no implementation provided in the client library.
+ ///
+ ///
+ /// The strings to find.
+ /// Returns true if all of the given strings are contained in the specified property of a document.
+ ///
+ ///
+ /// document.Name.FullTextContainsAll(, , , ...));
+ /// ]]>
+ ///
+ ///
+ public static bool FullTextContainsAll(this object obj, params string[] searches)
+ {
+ throw new NotImplementedException(ClientResources.LINQExtensionFunctionNotImplemented);
+ }
+
+ ///
+ /// Returns a boolean indicating whether any of the provided string expressions are contained in a specified property path.
+ /// For more information, see https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/query/fulltextcontainsany.
+ /// This method is to be used in LINQ expressions only and will be evaluated on server.
+ /// There's no implementation provided in the client library.
+ ///
+ ///
+ /// The strings to find.
+ /// Returns true if any of the given strings are contained in the specified property of a document.
+ ///
+ ///
+ /// document.Name.FullTextContainsAny(, , , ...));
+ /// ]]>
+ ///
+ ///
+ public static bool FullTextContainsAny(this object obj, params string[] searches)
+ {
+ throw new NotImplementedException(ClientResources.LINQExtensionFunctionNotImplemented);
+ }
+
///
/// This method generate query definition from LINQ query.
///
diff --git a/Microsoft.Azure.Cosmos/src/SqlObjects/SqlFunctionCallScalarExpression.cs b/Microsoft.Azure.Cosmos/src/SqlObjects/SqlFunctionCallScalarExpression.cs
index 651ad5726d..a4a3af39da 100644
--- a/Microsoft.Azure.Cosmos/src/SqlObjects/SqlFunctionCallScalarExpression.cs
+++ b/Microsoft.Azure.Cosmos/src/SqlObjects/SqlFunctionCallScalarExpression.cs
@@ -85,6 +85,9 @@ sealed class SqlFunctionCallScalarExpression : SqlScalarExpression
{ Names.Endswith, Identifiers.Endswith },
{ Names.Exp, Identifiers.Exp },
{ Names.Floor, Identifiers.Floor },
+ { Names.FullTextContains, Identifiers.FullTextContains },
+ { Names.FullTextContainsAll, Identifiers.FullTextContainsAll },
+ { Names.FullTextContainsAny, Identifiers.FullTextContainsAny },
{ Names.GetCurrentDateTime, Identifiers.GetCurrentDateTime },
{ Names.GetCurrentTicks, Identifiers.GetCurrentTicks },
{ Names.GetCurrentTimestamp, Identifiers.GetCurrentTimestamp },
@@ -294,6 +297,9 @@ public static class Names
public const string Endswith = "ENDSWITH";
public const string Exp = "EXP";
public const string Floor = "FLOOR";
+ public const string FullTextContains = "FullTextContains";
+ public const string FullTextContainsAll = "FullTextContainsAll";
+ public const string FullTextContainsAny = "FullTextContainsAny";
public const string GetCurrentDateTime = "GetCurrentDateTime";
public const string GetCurrentTicks = "GetCurrentTicks";
public const string GetCurrentTimestamp = "GetCurrentTimestamp";
@@ -437,6 +443,9 @@ public static class Identifiers
public static readonly SqlIdentifier Endswith = SqlIdentifier.Create(Names.Endswith);
public static readonly SqlIdentifier Exp = SqlIdentifier.Create(Names.Exp);
public static readonly SqlIdentifier Floor = SqlIdentifier.Create(Names.Floor);
+ public static readonly SqlIdentifier FullTextContains = SqlIdentifier.Create(Names.FullTextContains);
+ public static readonly SqlIdentifier FullTextContainsAll = SqlIdentifier.Create(Names.FullTextContainsAll);
+ public static readonly SqlIdentifier FullTextContainsAny = SqlIdentifier.Create(Names.FullTextContainsAny);
public static readonly SqlIdentifier GetCurrentDateTime = SqlIdentifier.Create(Names.GetCurrentDateTime);
public static readonly SqlIdentifier GetCurrentTicks = SqlIdentifier.Create(Names.GetCurrentTicks);
public static readonly SqlIdentifier GetCurrentTimestamp = SqlIdentifier.Create(Names.GetCurrentTimestamp);
diff --git a/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/BaselineTest/TestBaseline/LinqTranslationBaselineTests.TestFullTextContainsFunction.xml b/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/BaselineTest/TestBaseline/LinqTranslationBaselineTests.TestFullTextContainsFunction.xml
new file mode 100644
index 0000000000..d1ce25f084
--- /dev/null
+++ b/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/BaselineTest/TestBaseline/LinqTranslationBaselineTests.TestFullTextContainsFunction.xml
@@ -0,0 +1,145 @@
+
+
+
+
+ doc.StringField.FullTextContains("test"))]]>
+
+
+
+
+
+
+ (doc.StringField.FullTextContains("test1") OrElse doc.StringField.FullTextContains("test2")))]]>
+
+
+
+
+
+
+ doc.StringField.FullTextContains("test1")).Where(doc => doc.StringField.FullTextContains("test2"))]]>
+
+
+
+
+
+
+ doc.StringField.FullTextContainsAll(new [] {"test"}))]]>
+
+
+
+
+
+
+ doc.StringField.FullTextContainsAll(new [] {"test1", "test2", "test3"}))]]>
+
+
+
+
+
+
+ (doc.StringField.FullTextContainsAll(new [] {"test"}) OrElse doc.StringField.FullTextContainsAll(new [] {"test1", "test2", "test3"})))]]>
+
+
+
+
+
+
+ doc.StringField.FullTextContainsAll(new [] {"test"})).Where(doc => doc.StringField.FullTextContainsAll(new [] {"test1", "test2", "test3"}))]]>
+
+
+
+
+
+
+ doc.StringField.FullTextContainsAny(new [] {"test"}))]]>
+
+
+
+
+
+
+ doc.StringField.FullTextContainsAny(new [] {"test1", "test2", "test3"}))]]>
+
+
+
+
+
+
+ (doc.StringField.FullTextContainsAny(new [] {"test"}) OrElse doc.StringField.FullTextContainsAny(new [] {"test1", "test2", "test3"})))]]>
+
+
+
+
+
+
+ doc.StringField.FullTextContainsAny(new [] {"test"})).Where(doc => doc.StringField.FullTextContainsAny(new [] {"test1", "test2", "test3"}))]]>
+
+
+
+
\ No newline at end of file
diff --git a/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/Linq/LinqTranslationBaselineTests.cs b/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/Linq/LinqTranslationBaselineTests.cs
index e53ec6a9f6..ad4a0081f1 100644
--- a/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/Linq/LinqTranslationBaselineTests.cs
+++ b/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/Linq/LinqTranslationBaselineTests.cs
@@ -344,6 +344,37 @@ public void TestRegexMatchFunction()
new LinqTestInput("RegexMatch with 2nd argument invalid string options", b => getQuery(b).Where(doc => doc.StringField.RegexMatch("abcd", "this should error out on the back end"))),
};
this.ExecuteTestSuite(inputs);
+ }
+
+ [TestMethod]
+ public void TestFullTextContainsFunction()
+ {
+ // Similar to the type checking function, FullTextContains/FullTextContainsAll/FullTextContainsAny are not supported client side.
+ // Therefore this method is verified with baseline only.
+ List data = new List();
+ IOrderedQueryable query = testContainer.GetItemLinqQueryable(allowSynchronousQueryExecution: true);
+ Func> getQuery = useQuery => useQuery ? query : data.AsQueryable();
+
+ List inputs = new List
+ {
+ // FullTextContains
+ new LinqTestInput("FullTextContains with 1 argument", b => getQuery(b).Where(doc => doc.StringField.FullTextContains("test"))),
+ new LinqTestInput("FullTextContains with conditional", b => getQuery(b).Where(doc => doc.StringField.FullTextContains("test1") || doc.StringField.FullTextContains("test2"))),
+ new LinqTestInput("FullTextContains with conditional 2", b => getQuery(b).Where(doc => doc.StringField.FullTextContains("test1")).Where(doc => doc.StringField.FullTextContains("test2"))),
+
+ // FullTextContainsAll
+ new LinqTestInput("FullTextContainsAll with 1 argument", b => getQuery(b).Where(doc => doc.StringField.FullTextContainsAll("test"))),
+ new LinqTestInput("FullTextContainsAll with 3 argument", b => getQuery(b).Where(doc => doc.StringField.FullTextContainsAll("test1", "test2", "test3"))),
+ new LinqTestInput("FullTextContainsAll with conditional", b => getQuery(b).Where(doc => doc.StringField.FullTextContainsAll("test") || doc.StringField.FullTextContainsAll("test1", "test2", "test3"))),
+ new LinqTestInput("FullTextContainsAll with conditional 2", b => getQuery(b).Where(doc => doc.StringField.FullTextContainsAll("test")).Where(doc => doc.StringField.FullTextContainsAll("test1", "test2", "test3"))),
+
+ // FullTextContainsAny
+ new LinqTestInput("FullTextContainsAny with 1 argument", b => getQuery(b).Where(doc => doc.StringField.FullTextContainsAny("test"))),
+ new LinqTestInput("FullTextContainsAny with 3 argument", b => getQuery(b).Where(doc => doc.StringField.FullTextContainsAny("test1", "test2", "test3"))),
+ new LinqTestInput("FullTextContainsAny with conditional", b => getQuery(b).Where(doc => doc.StringField.FullTextContainsAny("test") || doc.StringField.FullTextContainsAny("test1", "test2", "test3"))),
+ new LinqTestInput("FullTextContainsAny with conditional 2", b => getQuery(b).Where(doc => doc.StringField.FullTextContainsAny("test")).Where(doc => doc.StringField.FullTextContainsAny("test1", "test2", "test3")))
+ };
+ this.ExecuteTestSuite(inputs);
}
[TestMethod]
diff --git a/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/Microsoft.Azure.Cosmos.EmulatorTests.csproj b/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/Microsoft.Azure.Cosmos.EmulatorTests.csproj
index edcd384b97..a334d6bdf2 100644
--- a/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/Microsoft.Azure.Cosmos.EmulatorTests.csproj
+++ b/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/Microsoft.Azure.Cosmos.EmulatorTests.csproj
@@ -241,6 +241,9 @@
PreserveNewest
+
+ PreserveNewest
+
PreserveNewest
diff --git a/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.Tests/Contracts/DotNetSDKAPI.json b/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.Tests/Contracts/DotNetSDKAPI.json
index e1118ce863..7961a69bbd 100644
--- a/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.Tests/Contracts/DotNetSDKAPI.json
+++ b/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.Tests/Contracts/DotNetSDKAPI.json
@@ -6680,6 +6680,27 @@
"Microsoft.Azure.Cosmos.Linq.CosmosLinqExtensions;System.Object;IsAbstract:True;IsSealed:True;IsInterface:False;IsEnum:False;IsClass:True;IsValueType:False;IsNested:False;IsGenericType:False;IsSerializable:False": {
"Subclasses": {},
"Members": {
+ "Boolean FullTextContains(System.Object, System.String)[System.Runtime.CompilerServices.ExtensionAttribute()]": {
+ "Type": "Method",
+ "Attributes": [
+ "ExtensionAttribute"
+ ],
+ "MethodInfo": "Boolean FullTextContains(System.Object, System.String);IsAbstract:False;IsStatic:True;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
+ },
+ "Boolean FullTextContainsAll(System.Object, System.String[])[System.Runtime.CompilerServices.ExtensionAttribute()]": {
+ "Type": "Method",
+ "Attributes": [
+ "ExtensionAttribute"
+ ],
+ "MethodInfo": "Boolean FullTextContainsAll(System.Object, System.String[]);IsAbstract:False;IsStatic:True;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
+ },
+ "Boolean FullTextContainsAny(System.Object, System.String[])[System.Runtime.CompilerServices.ExtensionAttribute()]": {
+ "Type": "Method",
+ "Attributes": [
+ "ExtensionAttribute"
+ ],
+ "MethodInfo": "Boolean FullTextContainsAny(System.Object, System.String[]);IsAbstract:False;IsStatic:True;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
+ },
"Boolean IsArray(System.Object)[System.Runtime.CompilerServices.ExtensionAttribute()]": {
"Type": "Method",
"Attributes": [