Проверка синтаксиса SQLite FTS (Полный текстовый поиск) и как сделать один термин, а не поиск
-
23-09-2019 - |
Вопрос
Есть ли способ определить, действителен ли запрос на совпадение, отправленный в таблицу FTS3 в SQLite? В настоящее время я не узнаю, является ли выражение недействительным, пока я не попытаюсь запустить его, что делает его немного сложным. Я хотел бы сообщить пользователю, что синтаксис недействителен, прежде чем даже попытаться запустить его.
Я использую SQLite с C API.
Кроме того, выполнение поиска с выражением «не» пройдет с ошибкой «SQLLITE Logic/Database». Гуглинг, кажется, указывает на то, что такой запрос недействителен. Есть ли правильный синтаксис для выполнения операции? По сути, я пытаюсь найти записи, которые не содержат этот термин. Или мне придется отбросить обратно в использование, как и сделать последовательное сканирование, а не использовать FTS?
Решение
Похоже, сейчас самый простой способ создать отдельную таблицу FTS без строк и выполнить запрос против него. Это будет немедленным, поскольку в таблице нет данных, и будет сообщать и ошибку, если синтаксис запроса неверен.