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