這個問題涉及如何將 FTS5 的 trigram tokenizer 與 Peewee 一起使用。
SQLite的 官方 FTS5 檔案參考了對 trigram 標記化/相似性的支持:
> The experimental trigram tokenizer extends FTS5 to > support substring matching in general, instead of the > usual token matching. When using the trigram tokenizer > , a query or phrase token may match any sequence of > characters within a row, not just a complete token. > > CREATE VIRTUAL TABLE tri USING fts5(a, tokenize="trigram"); > INSERT INTO tri VALUES('abcdefghij KLMNOPQRST uvwxyz');我試過用 Peewee 設定一個基于 FTS 的類。我更改了選項以使用 trigram 標記器:
class Meta: db_table = 'fts_test_db' database = test_db options = {'tokenize': 'trigram', 'content': PrecedentPW}當我嘗試使用這些選項創建表時,會出現此錯誤:
_db.create_tables([_fts], ) >> peewee.OperationalError: no such tokenizer: trigram但是,如果我更改標記器選項以使用其他內容(例如“搬運工”),則不會引發任何錯誤。
如何在 Peewee 中使用 trigram 標記器?
uj5u.com熱心網友回復:
您可能需要自己編譯分詞器或確保您運行的是足夠新的版本。在 Sqlite 3.34.0 之前,默認情況下不包含 trigram 標記器:https ://www.sqlite.org/releaselog/3_34_0.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/325063.html
上一篇:從代碼插入新行時使用資料庫默認值
