Supported methods and operators for xConnect search
xConnect search does not implement all of IAsyncQueryable<T>
methods and throws a Sitecore.XConnect.Search.YourLinqIsTooStrongException
or an XdbModelException
exception if you try to use a method that is not supported. The following table applies to both contact and interaction searches unless explicitly stated.
Refer to the xConnect Client API for an overview of synchronous and asynchronous extension methods.
Extension method and operator support matrix:
Method/Operator |
xConnect |
IAsyncQueryable<T> |
Notes |
---|---|---|---|
|
Yes |
Yes | |
|
Yes |
Yes |
See the Azure Search list field limitations section for restrictions. |
|
Yes |
Yes | |
|
Yes |
Yes | |
|
Yes |
Yes | |
|
Yes |
Yes | |
|
Yes |
Yes | |
|
Yes |
Yes | |
|
Yes |
Yes | |
|
Yes |
Yes | |
|
Yes |
Yes | |
|
Yes |
Yes | |
|
Yes |
Yes | |
|
Yes |
Yes | |
|
Yes |
Yes | |
|
Yes |
Yes | |
|
Yes |
Yes | |
|
Yes |
Yes | |
|
Yes |
Yes | |
|
Yes |
No | |
|
Yes |
No | |
|
Yes |
No | |
|
Yes |
No | |
|
Yes |
No |
Synchronous only. |
|
No |
Yes | |
|
No |
Yes | |
|
No |
Yes | |
|
No |
Yes | |
|
No |
Yes |
There is no Like()
extension method.
xConnect search provider limitations
xConnect search providers do not support the following scenarios:
Limitations of xConnect search providers:
Scenario |
Limitation |
---|---|
Custom methods inside search expressions |
The xConnect Client API does not support custom method calls inside LINQ query expressions. You receive a |
Search for null values |
It is not possible to check if a facet is null. For example: RequestResponse
|
Search by Timespan in custom event properties |
The following query (using a custom RequestResponse
Note You can still use the default |
First, FirstOrDefault, Last, LastOrDefault, or Count inside a LINQ expression |
Not supported: RequestResponse
|
Timespan |
You cannot use Supported: RequestResponse
Not supported: RequestResponse
|
Repeated names in paths to complex lists |
The following queries are unsupported because RequestResponse
|
Azure Search provider limitations
The following limitations are specific to the Azure Search provider for xConnect search:
Limitations of Azure Search providers:
Scenario |
Limitation |
---|---|
|
Azure Search provider does not support joins. For more information, see Work with search and Search contacts (includes examples with and without joins). Important This Azure Search limitation affects which segmentation rules you can use. For example, you cannot filter contacts by email events (such as opening an email or clicking a link). |
Partial text search |
Not supported by the Azure Search provider. For example: RequestResponse
|
Azure Search list field limitations
The following table relates to complex type limitations in Azure Search.
9.0 Update 2
9.0 Update 2 introduces improvements to comparisons within lists of complex types. The following shows the operator support for these types:
Azure Search list field support matrix for 9.0 Update 2:
Types |
== |
|| |
&& |
! |
> |
>= |
< |
<= |
!= |
---|---|---|---|---|---|---|---|---|---|
Nested lists of strings, enums, or Guids |
Yes |
Yes |
Yes |
Yes |
No |
No |
No |
No |
No |
Nested lists of complex types or other simple types such as |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
The following gives examples of operator usage for these types:
Azure Search list field examples for 9.0 Update 2:
Types |
Examples |
---|---|
Nested lists of strings, enums, or Guids |
Not supported: RequestResponse
Supported: RequestResponse
|
Nested lists of complex types or other simple types such as |
Supported: RequestResponse
|
A list that contains another list |
You can use a nested Supported: RequestResponse
|
Nested lists of strings, enums, or Guids, inside the |
You can use Supported: RequestResponse
|
The |
It refers to fields of the exact type or the base class. Supported: RequestResponse
|
9.0 Initial Release and 9.0 Update 1
The following shows the operator support for these types:
Azure Search list field support for 9.0 Initial Release and 9.0 Update 1:
Types |
== |
|| |
&& |
! |
> |
>= |
< |
<= |
!= |
---|---|---|---|---|---|---|---|---|---|
Nested lists inside the |
Yes |
No |
No |
No |
No |
No |
No |
No |
No |
The following gives examples of operator usage for these types:
Azure Search list field examples for 9.0 Initial Release and 9.0 Update 1:
Types |
Examples |
---|---|
A list that contains another list |
You can use a nested Supported: RequestResponse
|
Nested lists inside the |
Not supported: RequestResponse
Supported: RequestResponse
|
The |
You can only refer to fields of the exact type that was specified, not the base class. Not supported: RequestResponse
Note Even though RequestResponse
Note
|