sqlite3 ngram tokenizer
1.0.0
Ce tokenzer fonctionne derrière un autre tokenizer comme Unicode61 (par défaut).
Exemple:
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');
` ) ; Il tokenise les mots latins par 2 grammes avec la première lettre séparée: "letter" => [l le et tt te er] , donc il correspondra à "let" mais pas "etter" .
Pour les mots non latins, il les tokenise par 1 gramme. Il fonctionne comme String.includes() sur des mots non-latin.
Vous pouvez spécifier d'autres tokenzers comme
-- porter tokenizer also works behind another tokenizer
CREATE VIRTUAL TABLE t1 USING fts5(x, tokenize = ' ngram porter unicode61 remove_diacritics 1 ' );AVIS
highlight() peut ne pas fonctionner comme prévu derrière un tokenizer Porter.