我正在开发一个Iphone App,用户可以在其中输入任何字符串到搜索栏中,然后按搜索按钮。之后,将出现结果列表。
在我的SQLite中,我有四列a,b,c,d。假设它们具有以下值:
Dataset 1: a: code1 b: report1 c: description1_1 d: description1_2 Dataset 2: a: code2 b: report2 c: description2_1 d: description2_2
因此,如果用户输入的值为:“ 1_1”,则由于出现c,将选择第一个数据集。如果用户输入值:“ report”,则将选择第一个和第二个数据集。
由于我使用的数据库中包含近60.000个数据集,因此搜索部分字符串确实会降低性能。
在所有4列设置索引将使SQLite数据库的大小太大。所以我根本没有使用索引。
我的选择语句如下所示:
NSString *sql = [NSString stringWithFormat:@"SELECT * FROM scode WHERE a LIKE '%@%@%@' OR c LIKE '%@%@%@' OR d LIKE '%@%@%@'", wildcard, searchBar.text, wildcard, wildcard, searchBar.text, wildcard, wildcard, searchBar.text, wildcard, wildcard, searchBar.text, wildcard];
有什么好的方法可以增强在所有列中搜索部分字符串的性能?
谢谢
您需要全文本搜索,而SQLite本身不支持此功能。我没有第三方支持的任何经验。