Проверка синтаксиса SQLite FTS (Полный текстовый поиск) и как сделать один термин, а не поиск

StackOverflow https://stackoverflow.com/questions/2156376

  •  23-09-2019
  •  | 
  •  

Вопрос

Есть ли способ определить, действителен ли запрос на совпадение, отправленный в таблицу FTS3 в SQLite? В настоящее время я не узнаю, является ли выражение недействительным, пока я не попытаюсь запустить его, что делает его немного сложным. Я хотел бы сообщить пользователю, что синтаксис недействителен, прежде чем даже попытаться запустить его.

Я использую SQLite с C API.

Кроме того, выполнение поиска с выражением «не» пройдет с ошибкой «SQLLITE Logic/Database». Гуглинг, кажется, указывает на то, что такой запрос недействителен. Есть ли правильный синтаксис для выполнения операции? По сути, я пытаюсь найти записи, которые не содержат этот термин. Или мне придется отбросить обратно в использование, как и сделать последовательное сканирование, а не использовать FTS?

Это было полезно?

Решение

Похоже, сейчас самый простой способ создать отдельную таблицу FTS без строк и выполнить запрос против него. Это будет немедленным, поскольку в таблице нет данных, и будет сообщать и ошибку, если синтаксис запроса неверен.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top