Couchbase Lite 2.0.0 C# 查询不区分大小写



我在我的应用程序中使用 Couchbase Lite 2.0.0,并尝试对包含给定短语的术语进行不区分大小写的字符串搜索,例如,如果值hello, world!则短语o, w应该返回它,但ow不应该。

根据 couchbase 文档应该能够通过LIKE运算符和通配符匹配来实现这一点:

请注意,由于 like 不区分大小写匹配,因此以下查询将返回名称匹配"皇家工程师博物馆"、"皇家工程师博物馆"、"皇家工程师博物馆"等名称的"地标"类型文档。

所以我的代码是;

...
.Where(Expression.Property(myPropertyName).Like(Expression.String($"%{phrase}%"));
...

这按预期工作,但它仍然区分大小写。

我试过使用.Collate(Collation.ASCII().IgnoreCase(true)

我也尝试过在(?i)模式下使用 REGEX 运算符,但这引起了恐慌。

我正在考虑使用全文搜索功能,但对于这种简单的情况来说,这可能是矫枉过正。

这是一个错误还是我错过了什么?

他们最近将其更改为区分大小写!

为了使它不区分大小写,他们现在建议使用这样的Function.Lower

...
.Where(Function.Lower(Expression.Property(myPropertyName))
.Like(Expression.String($"%{phrase?.ToLower()}%"));
...

这似乎有点笨拙。希望您不必处理任何土耳其i!

有关详细信息,请参阅...

Couchbase lite 2.0.,DB22,像变得区分大小写?

在Couchbase Mobile 2.0 中引入查询接口

不区分大小写like

最新更新