Проверка синтаксиса sqlite FTS (полнотекстового поиска) и как выполнить поиск по одному слову - PullRequest
0 голосов
/ 28 января 2010

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

Я использую sqlite с C api.

Кроме того, поиск с выражением «НЕ» завершится с ошибкой «логика SQLlite / ошибка базы данных». Похоже, поиск в Google указывает на то, что такой запрос недействителен. Существует ли правильный синтаксис для выполнения операции? По сути, я пытаюсь найти записи, которые не содержат этот термин. Или я должен вернуться к использованию LIKE и выполнить последовательное сканирование и не использовать FTS?

1 Ответ

1 голос
/ 19 марта 2010

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

...