crane search
1.0.0
我的部落格文章:靜態網站的 WebAssembly 搜尋工具
Crane 是一個技術演示,其靈感來自 Stork,並使用幾乎相同的設定檔設定。所以它也必須以鳥的名字命名。
我寫它是為了幫助我了解 WebAssembly 搜尋工具的工作原理。請使用 Stork 代替。
起重機是兩個程式。第一個程式掃描一組文件並建立有效的索引。 1MB 的文字和元資料被轉換為 25KB 的索引(14KB gzip 壓縮)。第二個程式是一個 Wasm 模組,它與一些 JavaScript 黏合程式碼和索引一起發送到瀏覽器。結果是一個即時搜尋引擎,可以幫助用戶在鍵入時找到網頁。
訪問演示
全文搜尋引擎部分由 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
將/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