我正在使用SQLite3对一些旧的D5业务内容(朋友的免费赠品)进行一些更新和修复,因此必须使用Zeos 6.6
我想加快当前使用两个BLOB_TEXT字段"类"和"方法"的文本搜索
if not(cbSearchMatchCase.Checked) then
SearchText:=UpperCase(SearchText);
while not(dm.tbl.EOF) do
begin
SearchData:=dm.tbl.FieldByName(fldClass).AsString+' '+
dm.tbl.FieldByName(fldMethods).AsString;
if not(cbSearchMatchCase.Checked) then
SearchData:=UpperCase(SearchData);
MatchFound:=AnsiPos(SearchText,SearchData) > 0;
dm.tbl.Edit;
dm.tbl.FieldByName(fldSearch).AsBoolean:=MatchFound;
dm.tbl.Post;
pbMain.StepIt;
dm.tbl.Next;
end;
任何人都可以指出我一些使用 SQLite FTS 扩展的代码或比上述更快的代码吗?
我找到了这个,但由于太多原因无法在这里定义它。我确信它可以工作,因为 Žarko Gajić 的东西总是正确的,但只是不适用于此安装。:)http://zarko-gajic.iz.hr/full-text-txt- ...G-项目/
只需在此处找到此链接...SQLite 中的 BLOB 数据类型是否支持 FULL-text 搜索?
这也许可以解释为什么似乎什么都不起作用,BLOB_TEXT被忽略了?是的?不?
有什么片段可以加快此文本搜索的速度吗?
为什么不在类/方法上创建索引?它可以是表达式索引:https://www.sqlite.org/expridx.html,甚至是复杂的。我会从小写开始,如果需要区分大小写,我会重新过滤。