非常に小さなスタンドアロンフルテキスト検索HTTP/SCGIサーバー。

上記と
tools/dir2jsonlを実行します最近のDebianとubuntuで、依存関係をインストールします
sudo apt install libsqlite3-tcl make sqlite3 tcl tcllib tdomfreebsd with sudoで依存関係をインストールします
sudo pkg install sqlite3 tcl-sqlite3 tcl86 tcllib tdom
cd /usr/local/bin
sudo ln -s tclsh8.6 tclsh Usage:
tinyfts --db-file path [option ...] [wapp-arg ...]
Options:
--css-file ''
--credits <HTML>
--header <HTML>
--footer <HTML>
--title tinyfts
--subtitle <HTML>
--table tinyfts
--rate-limit 60
--result-limit 100
--log 'access bad-request error rate'
--behind-reverse-proxy false
--snippet-size 20
--title-weight 1000.0
--query-min-length 2
--query-syntax web
基本的な使用法です
tools/import jsonl example.jsonl example.sqlite3
# Local server
./tinyfts --db-file example.sqlite3 --local 8080
# Server available over the network
./tinyfts --db-file example.sqlite3 --server 8080Tinyftsのデフォルトのフルテキスト検索クエリ構文は、Web検索エンジンの構文に似ています。次の種類の表現を処理できます。
foo - fooという言葉を検索します。"foo bar" - foo barを検索します。foo AND bar 、 foo OR bar 、foo - NOT foo - fooとbarの両方、少なくとも1つのfooとbar 、およびそれぞれfooのない文書を検索します。 foo AND bar foo barと同じです。オペレーターAND 、 OR 、すべてのキャップに属している必要はNOT 。-foo 、 -"foo bar" - NOT foo 、 NOT "foo bar"のと同じです。ユーザーがコマンドラインオプションである--query-syntax fts5を使用して、完全なFTS5クエリを作成できるようにすることができます。 FTS5クエリはより強力ですが、基礎となるデータベースの技術的な詳細を公開します。 (たとえば、列名。)FTS5構文に不慣れなユーザーは、特別な意味を持つ単語を引用しなかったため、驚くべきことでエラーに遭遇します。
Tinyftsは、特定のスキーマを使用してSQLiteデータベーステーブルの内容を検索します。バンドルされたインポートtools/import 、wikit/nikitデータベースからシリアル化データ(1行ごとに1つのJSONオブジェクトまたはTCL辞書を含むテキストファイル)およびwikiページをインポートできます。
この例は、TclerのWikiのバックアップコピーを検索する方法を示しています。命令は、依存関係とGITがインストールされたほとんどのLinux分布とFreeBSDで動作する必要があります。
1. https://sourceforge.net/project/showfiles.php?group_id=211498にアクセスしてください。 TclerのWikiの最後のWikitデータベーススナップショットをダウンロードして抽出します。現在、それはwikit-20141112.zipです。データベースファイルを~/Downloads/wikit.tkdに抽出したと仮定します。
2。Tinyftsをダウンロード、ビルド、テストします。この例では、GITを使用して最新の開発バージョンを取得します。
git clone https://github.com/dbohdan/tinyfts
cd tinyfts
make3. TclerのWikiデータベースからTinyFTS検索データベースを作成します。リポジトリには、WIKITデータベースをサポートするインポートツールが含まれています。ハードウェアに応じて、数百メガバイトの入力データベースサイズで最大数分かかる場合があります。
./tools/import wikit ~ /Downloads/wikit.tkd /tmp/fts.sqlite34. http:// localhost:8080でtinyftsを開始します。サーバーURLは、ブラウザで自動的に開く必要があります。検索してみてください。
./tinyfts --db-file /tmp/fts.sqlite3 --title ' tinyfts demo ' --local 8080--behind-reverse-proxy trueで起動することを忘れないでください。正しいクライアントIPアドレスの検出には、レートの制限が依存するために必要です。 tinyftsが逆プロキシの背後にない場合は--behind-reverse-proxyにしないでください。クライアントは、ヘッダーX-Real-IPまたはX-Forwarded-ForでIPをスプーフィングし、自分自身を制限し、レートを他のレートを制限します。 mit。 WAPPは著作権(c)2017-2022 D.リチャードヒップであり、簡素化されたBSDライセンスの下で配布されています。 Tacitは著作権(c)2015-2020 Yegor Bugayenkoであり、MITライセンスの下で配布されています。