0
我做了一些老D5业务东西(赠品为朋友)与sqlite3的一些更新和维修,从而不得不使用的Zeos 6.6SQLite的,文本搜索FTS等
我想加快文本搜索目前使用两个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扩展或东西比上面的快一些代码?
我发现这个,但不能让它工作的方式有太多的理由在这里定义。我确信它的工作原理是ŽarkoGajić的东西始终是正确的,但只是没有这个安装。 :) http://zarko-gajic.iz.hr/full-text-txt- ... G-项目/
就在这里找到此链接... Does BLOB data types in SQLite supports FULL-text search?
这或许可以解释为什么似乎没有任何工作,该BLOB_TEXT被忽略?是?没有?
任何片段,以加快此文本搜索?
有一件事是不通过FieldByName循环。在循环外声明一个'TField:= dm.tbl.FieldByName(fldClass)',里面使用TField.AsString。 –
@JanDoggen谢谢,但只有在测试数据库中删除了600个记录中的.8秒,我们有20,000个记录。目前,该搜索以每1000个18秒的速度运行搜索。为了产生任何影响,我需要让FTS4运行。 – user2175495