私はSQLite3のと、いくつかの古いD5ビジネスのもの(友人用景品)のいくつかの更新や修理をやっているので、私は現在、テキスト検索をスピードアップしたいのZeos 6.6SQLiteの、テキスト検索FTSなど
を使用する必要があります2つの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をループしないことが1つあります。ループの外側でTField:= dm.tbl.FieldByName(fldClass)を宣言し、TField.AsStringを内部で使用します。 –
@JanDoggenありがとうございましたが、それはテストデータベースの600レコードを1/8秒しか削っていませんでしたが、実際には2万回あります。現在、それは1000秒あたり18秒で検索を実行しています。影響を与えるためには、FTS4を稼働させる必要があります。 – user2175495