Я использую 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)
Я также пытался использовать оператор REGEX с режимом (?i)
, но это вызвало панику.
Я думаю об использовании функции полнотекстового поиска, но это, вероятно, излишне для этой простой ситуации.
Это ошибка или мне чего-то не хватает?