sqlite3 ngram tokenizer
1.0.0
Este tokenizer trabalha atrás de outro tokenizer como o Unicode61 (padrão).
Exemplo:
const sqlite = require ( 'better-sqlite3' ) ;
const tokenizer = require ( 'sqlite3-ngram-tokenizer' ) ;
const db = sqlite ( ':memory:' ) ;
db . loadExtension ( tokenizer . pluginPath ) ; // pluginPath does not contain extension
db . exec ( `
CREATE VIRTUAL TABLE t1 USING fts5(x, tokenize = 'ngram');
` ) ; Ele tokeniza as palavras latinas por 2 gramas com primeira letra separada: "letter" => [l le et tt te er] , para que corresponda "let" , mas não "etter" .
Para palavras não de latina, ele as simplifica em 1 gramas. Ele executa como String.includes() em palavras não latinas.
Você pode especificar outros tokenizadores como
-- porter tokenizer also works behind another tokenizer
CREATE VIRTUAL TABLE t1 USING fts5(x, tokenize = ' ngram porter unicode61 remove_diacritics 1 ' );PERCEBER
highlight() pode não funcionar como esperado atrás de um tokenizador de Porter.