Как хранить двоичные данные в таблицах SQLite с включенным FTS3? - PullRequest
2 голосов
/ 14 ноября 2010

Я перевожу приложение из обычной базы данных SQLite в базу данных с включенным полнотекстовым поиском.Он имеет несколько BLOB-столбцов, в которых хранятся такие вещи, как цифровые подписи, которые, очевидно, не нужно индексировать.Я читал, что другие люди решают эту проблему, перемещая все данные, не относящиеся к TEXT, в отдельную таблицу, не относящуюся к FTS3, которую они при необходимости объединяют с таблицей FTS3, но это очень неэффективное решение.Нет ли способа просто исключить определенные столбцы из индексации?

Ответы [ 2 ]

0 голосов
/ 26 октября 2012

Вы можете сделать это меньше хлопот, создав представление объединения, которое затем можно выбрать. Вы все еще можете использовать MATCH для столбцов, которые возникли в таблице fts, и вам не нужно делать это при каждом запросе.

0 голосов
/ 14 ноября 2010

Это не безвкусно.SQL является реляционным, соединения являются естественной частью жизни.Думая, что они «не элегантны», это приводит к стереотипно плохим проектам баз данных.

Вы определили, что у вас есть два разных типа данных - текст, который вам часто нужно искать, и большие двоичные объекты - нет.Нет ничего плохого в том, чтобы хранить их в двух разных таблицах.

...