linkding icon indicating copy to clipboard operation
linkding copied to clipboard

Case-insensitive search does not work with non-ASCII characters

Open molejado opened this issue 3 years ago • 1 comments

Is it possible to search with ignoring uppercase / lowercase characters, not in tags, in description and title search?

Безымянный

Безымянный2

molejado avatar Dec 06 '21 20:12 molejado

Case insensitive search works with ASCII characters, but not with Unicode characters. That seems to be a limitation of Sqlite, out of the box it only supports case-insensitive string comparisons for ASCII characters: https://sqlite.org/faq.html#q18

Fixing this would apparently require compiling a custom build of Sqlite for every supported platform (amd64, arm64, arm/v7) to include the ICU extension, which provides support for Unicode string comparisons, as well as implementing a custom Django database backend to make use of the custom Sqlite build. I'm afraid that's a bit out of my experise, and even if someone could contribute a solution, I'm not sure if I'm comfortable with maintaining this (for example keeping the custom Sqlite build in sync with the latest patches etc).

The only other solution I can think of is to use a different database like Postgres, however I'm not sure if linkding will work with other databases, and I do not provide support for for that use-case. Maybe someone can give it a try to make linkding work with Postgres, or even contribute a docker-compose setup.

sissbruecker avatar Dec 10 '21 19:12 sissbruecker