Minha postagem no blog: Ferramentas de pesquisa WebAssembly para sites estáticos
Crane é uma demonstração técnica inspirada no Stork e usa um arquivo de configuração quase idêntico. Então também tinha que receber o nome de um pássaro.
Escrevi-o para me ajudar a entender como funcionam as ferramentas de pesquisa WebAssembly. Por favor, use o Stork.
Crane é dois programas. O primeiro programa verifica um grupo de documentos e cria um índice eficiente. 1 MB de texto e metadados é transformado em um índice de 25 KB (14 KB compactado). O segundo programa é um módulo Wasm que é enviado ao navegador junto com um pouco de código JavaScript e o índice. O resultado é um mecanismo de busca instantâneo que ajuda os usuários a encontrar páginas da web enquanto digitam.
Visite a demonstração
O mecanismo de pesquisa de texto completo é alimentado em parte pelo código da postagem do blog de Artem Krylysov Vamos construir um mecanismo de pesquisa de texto completo.
Nenhum esforço foi feito para reduzir o binário Wasm. Consulte Reduzindo o tamanho dos arquivos Wasm.
Descreva seus arquivos de documentos e seus metadados.
[ input ]
files = [
{
path = " docs/essays/essay01.txt " ,
url = " essays/essay01.txt " ,
title = " Introduction "
},
# etc.
]
[ output ]
filename = " dist/federalist.crane "
Passe o arquivo de configuração para o script de construção. Você desejará um novo índice sempre que seus documentos forem alterados, mas você só precisará construir o módulo Wasm uma vez.
./build-index.sh federalist.toml
./build-search.sh
Hospede os arquivos de /dist
em seu site (por exemplo, wasm_exec.js
, crane.js
, crane.wasm
, federalist.crane
). E você vai embora!
const crane = new Crane ( "crane.wasm" , "federalist.crane" ) ;
await crane . load ( ) ;
const results = crane . query ( 'some keywords' ) ;
console . log ( results ) ;
Veja a demonstração em /docs
para uma UI básica.
./gh-pages.sh