🗃️
SQLite FTS5
kham-sqlite เป็น loadable extension สำหรับ SQLite ที่ให้ custom FTS5 tokenizer ช่วยตัดคำภาษาไทยในการทำ FTS5 MATCH query ให้ถูกต้อง
1
สิ่งที่ต้องมีก่อน
SQLite ที่เปิดใช้งาน FTS5 และรองรับ load_extension บน macOS ต้องติดตั้งจาก Homebrew เพราะ system sqlite3 ปิด load_extension
brew install sqlite 2
Build extension
cargo build -p kham-sqlite --release
# ไฟล์อยู่ที่:
# Linux: target/release/libkham_sqlite.so
# macOS: target/release/libkham_sqlite.dylib 3
Load และสร้างตาราง FTS5
.load ./target/release/libkham_sqlite
CREATE VIRTUAL TABLE docs USING fts5(
title, body,
tokenize = 'kham'
); 4
Insert และค้นหา
INSERT INTO docs VALUES
('อาหารไทย', 'กินข้าวกับปลาและผัก'),
('เมืองหลวง', 'กรุงเทพมหานครเป็นเมืองหลวงของประเทศไทย');
SELECT * FROM docs WHERE docs MATCH 'ปลา';
SELECT snippet(docs, 1, '<b>', '</b>', '…', 10)
FROM docs WHERE docs MATCH 'กรุงเทพ';