Rob*_*ers 2 c# case-insensitive couchbase sql-like couchbase-lite
我在我的应用程序中使用 Couchbase Lite 2.0.0,并尝试对包含给定短语的术语进行不区分大小写的字符串搜索,例如,如果值是,hello, world!
则该短语o, w
应该返回它但ow
不应该返回。
根据couchbase docs应该能够通过LIKE
运算符和通配符匹配来实现这一点:
请注意,由于 like 不区分大小写匹配,因此以下查询将返回名称与“皇家工程师博物馆”、“皇家工程师博物馆”、“皇家工程师博物馆”等匹配的“地标”类型文档。
所以我的代码是;
...
.Where(Expression.Property(myPropertyName).Like(Expression.String($"%{phrase}%"));
...
Run Code Online (Sandbox Code Playgroud)
这按预期工作,除了它仍然区分大小写。
我试过使用 .Collate(Collation.ASCII().IgnoreCase(true)
我也试过在(?i)
模式下使用 REGEX 运算符,但这引起了恐慌。
我正在考虑使用全文搜索功能,但这对于这种简单的情况可能有点过分。
这是一个错误还是我遗漏了什么?
他们最近将其更改为区分大小写!
为了使其不区分大小写,他们现在建议使用Function.Lower
这样的:
...
.Where(Function.Lower(Expression.Property(myPropertyName))
.Like(Expression.String($"%{phrase?.ToLower()}%"));
...
Run Code Online (Sandbox Code Playgroud)
这似乎有点hacky。希望您不必与任何土耳其人打交道!
有关更多信息,请参阅...
Couchbase lite 2.0., DB22, like 变得区分大小写了?
介绍 Couchbase Mobile 2.0 中的查询接口
归档时间: |
|
查看次数: |
388 次 |
最近记录: |