You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Cosmos has full text support in preview (docs), and we've received a request to enable that from EF.
Implementation-wise, this shouldn't be too different from the work we did for vector search for 9.0 (see #33783, #35074):
Allow modeling information for full-text search; this would set up the full-text policy/index when creating a new container.
Query translations for the full-text functions (docs).
One interesting idea: rather than providiing e.g. EF.Functions. FullTextContains, the user could simply use regular string Contains; if the referenced property is known to have a full-text index (from the model), we would implicitly translate that Contains to FullTextContains. But this needs to be checked (possibly with the Cosmos people): it would mean the user can no longer decide between regular CONTAINS and FullTextContains (is there any reason to use regular CONTAINS on a column which has a full-text index?).
This doesn't work, since full-text search does e.g. stemming, and .NET Contains should do bare character search.
For FullTextContainsAll and FullTextContainsAny, we can decide to pattern-match the LINQ constructs Where(x => tags.All(t => x.FullTextContains(t))), rather than introducing a direct overload. Though it's simpler - and maybe a bit more discoverable - for us to just provide the exact functions that Cosmos provides.
As part of this, translation support for RRF should be done (hybrid search).
The text was updated successfully, but these errors were encountered:
Cosmos has full text support in preview (docs), and we've received a request to enable that from EF.
Implementation-wise, this shouldn't be too different from the work we did for vector search for 9.0 (see #33783, #35074):
One interesting idea: rather than providiing e.g. EF.Functions. FullTextContains, the user could simply use regular string Contains; if the referenced property is known to have a full-text index (from the model), we would implicitly translate that Contains to FullTextContains. But this needs to be checked (possibly with the Cosmos people): it would mean the user can no longer decide between regular CONTAINS and FullTextContains (is there any reason to use regular CONTAINS on a column which has a full-text index?).Where(x => tags.All(t => x.FullTextContains(t)))
, rather than introducing a direct overload. Though it's simpler - and maybe a bit more discoverable - for us to just provide the exact functions that Cosmos provides.The text was updated successfully, but these errors were encountered: