私のブログ投稿: 静的サイト用の WebAssembly 検索ツール
Crane は Stork からインスピレーションを得た技術デモで、ほぼ同一の構成ファイル設定を使用します。したがって、鳥の名前も付ける必要がありました。
WebAssembly 検索ツールがどのように機能するかを理解するためにこれを作成しました。代わりにStorkを使用してください。
クレーンは2つのプログラムです。最初のプログラムはドキュメントのグループをスキャンし、効率的なインデックスを構築します。 1MB のテキストとメタデータが 25KB のインデックス (gzip 圧縮された 14KB) に変換されます。 2 番目のプログラムは、少しの JavaScript グルー コードとインデックスとともにブラウザーに送信される Wasm モジュールです。その結果、ユーザーが入力中に Web ページを見つけるのに役立つインスタント検索エンジンが誕生しました。
デモにアクセスしてください
全文検索エンジンは、Artem Krylysov のブログ投稿「全文検索エンジンを構築しましょう」のコードの一部を利用しています。
Wasm バイナリを圧縮するための努力は行われていません。 Wasm ファイルのサイズの削減を参照してください。
ドキュメント ファイルとそのメタデータについて説明します。
[ input ]
files = [
{
path = " docs/essays/essay01.txt " ,
url = " essays/essay01.txt " ,
title = " Introduction "
},
# etc.
]
[ output ]
filename = " dist/federalist.crane "
構成ファイルをビルド スクリプトに渡します。ドキュメントが変更されるたびに新しいインデックスが必要になりますが、Wasm モジュールを構築する必要があるのは一度だけです。
./build-index.sh federalist.toml
./build-search.sh
Web サイト上の/dist
からのファイルをホストします (例: wasm_exec.js
、 crane.js
、 crane.wasm
、 federalist.crane
)。そして、あなたは去ります!
const crane = new Crane ( "crane.wasm" , "federalist.crane" ) ;
await crane . load ( ) ;
const results = crane . query ( 'some keywords' ) ;
console . log ( results ) ;
基本的な UI については、 /docs
内のデモを参照してください。
./gh-pages.sh