C/C++ で拡張が作れるらしい。
・・・ということは、誰か Rust で書けるようにしてるのでは?と探したら
本家にテンプレートがあって
https://github.com/duckdb/extension-template-rs
ここに日本語の解説があった
https://zenn.dev/yutannihilation/articles/663c879b74343c
試行錯誤の末、「わかち書き」をする拡張が書けた
https://github.com/nakagami/wakati
git clone --recurse-submodules git@github.com:nakagami/wakati.git
cd wakati
make configure
make debug
したら ./build/debug/extension/wakati/wakati.duckdb_extension というファイルができるので
duckdb -unsigned
LOAD './build/debug/extension/wakati/wakati.duckdb_extension';
SELECT wakati(col0) FROM values ('すもももももももものうち'), ('私の名前は中野です') AS v;
をしてこんな感じ
(事前に mecab辞書のインストールが必要)
ここ https://voluntas.ghost.io/duckdb-japanese-full-text-search/ で、 DuckDB-FTS + Lindera で、全文検索しているようなことができるんじゃないかと思っている
この記事へのコメント