0

我正在使用 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-project/

只需在此处找到此链接... SQLite 中的 BLOB 数据类型是否支持全文搜索?

这可以解释为什么似乎没有任何效果,BLOB_TEXT 被忽略了?是的?不?

有什么片段可以加快这个文本搜索的速度吗?

4

1 回答 1

0

为什么不在类/方法上创建索引?可以是表达式索引:https ://www.sqlite.org/expridx.html甚至可以是复杂的。我将从小写开始,然后在需要区分大小写时重新过滤。

于 2016-04-23T22:34:55.523 回答