Мое приложение Android содержит таблицу SQLite (полнотекстовый поиск / FTS3), которая содержит такие данные, как:
Продукт Грина
В приложении, когда пользовательищет Продукт Грина , совпадение найдено.Но когда пользователь ищет Greens Product (т. Е. Без апострофа), совпадение отсутствует.
Мне нужно, чтобы продукт возвращался независимо от того, введет ли пользователь апостроф или нет.
Итак, я читаю документацию о токенизаторах FTS3 , в которой указывается, что мне нужно указать апостроф в аргументе tokenchars
.
Итак, я попытался повторно-создание моей таблицы следующим образом:
CREATE VIRTUAL TABLE products USING fts3 (product_name TEXT, tokenize=simple "tokenchars='");
, но по-прежнему нет совпадений, когда пользователь ищет Greens Product .
I 'Мы также пробовали:
CREATE VIRTUAL TABLE products USING fts3 (product_name TEXT, tokenize=simple "tokenchars=''");
(двойной апостроф)
и
CREATE VIRTUAL TABLE products USING fts4 (product_name TEXT, tokenize=simple "tokenchars='");
(fts4)
и
CREATE VIRTUAL TABLE products USING fts4 (product_name TEXT, tokenize=simple "tokenchars=''");
(двойной апостроф и fts4)
но ни один из них, похоже, не работает для меня.
Я не уверен, что попробовать дальше.И я также не уверен, что могу столкнуться с некоторыми ограничениями из-за реализации SQLite в Android.
У кого-нибудь есть предложения?