sqlite3 ngram tokenizer
1.0.0
tokenizer นี้ทำงานอยู่เบื้องหลัง tokenizer อื่นเช่น Unicode61 (ค่าเริ่มต้น)
ตัวอย่าง:
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');
` ) ; มันทำให้คำภาษาละตินโดย 2 กรัมด้วยตัวอักษรตัวแรกแยก: "letter" => [l le et tt te er] ดังนั้นมันจะตรงกับ "let" แต่ไม่ใช่ "etter"
สำหรับคำที่ไม่ใช่ลาตินมันจะทำให้พวกเขาเป็น 1 กรัม มันทำเช่น String.includes() ในคำที่ไม่ใช่ลาติน
คุณสามารถระบุ tokenizers อื่น ๆ เช่น
-- porter tokenizer also works behind another tokenizer
CREATE VIRTUAL TABLE t1 USING fts5(x, tokenize = ' ngram porter unicode61 remove_diacritics 1 ' );สังเกต
highlight() อาจไม่ทำงานตามที่คาดไว้เบื้องหลัง porter tokenizer