bundle tokenizer

This commit is contained in:
polv committed 2026-08-30 12:52:08 +07:00
1 parent ac92453685
commit fc7831b04e
2 files changed
+64 -63

No files matched your search

+62 -62
View File
@@ -4,72 +4,72 @@ pub struct YomitanSearch;
impl YomitanSearch { impl YomitanSearch {
pub fn migrations() -> Vec<Migration> { pub fn migrations() -> Vec<Migration> {
vec![ vec![
Migration { Migration {
version: 1, version: 1,
description: "create yomitan dict-version tables", description: "create yomitan dict-version tables",
sql: " sql: "
CREATE TABLE dict ( CREATE TABLE dict (
id INTEGER PRIMARY KEY, id INTEGER PRIMARY KEY,
title TEXT NOT NULL, title TEXT NOT NULL,
revision TEXT NOT NULL, revision TEXT NOT NULL,
author TEXT, author TEXT,
url TEXT, url TEXT,
description TEXT, description TEXT,
sort_order INTEGER NOT NULL DEFAULT 0, sort_order INTEGER NOT NULL DEFAULT 0,
installed_at TEXT NOT NULL DEFAULT (datetime('now')), installed_at TEXT NOT NULL DEFAULT (datetime('now')),
bundle_name TEXT, -- custom bundle_name TEXT, -- custom
lang TEXT NOT NULL, -- custom lang TEXT NOT NULL, -- custom
asset_count INTEGER, -- custom asset_count INTEGER, -- custom
source TEXT, -- custom source TEXT, -- custom
UNIQUE (title, revision) UNIQUE (title, revision)
); );
", ",
kind: MigrationKind::Up, kind: MigrationKind::Up,
}, },
Migration { Migration {
version: 1, version: 1,
description: "create yomitan ja query tables", description: "create yomitan ja query tables",
sql: " sql: "
CREATE TABLE ja_search ( CREATE TABLE ja_search (
id INTEGER NOT NULL, -- yomitan.terms.id OR yomitan dups OR -user.terms.id id INTEGER NOT NULL, -- yomitan.terms.id OR yomitan dups OR -user.terms.id
dict_id INTEGER NOT NULL REFERENCES dict(id) ON DELETE CASCADE, dict_id INTEGER NOT NULL REFERENCES dict(id) ON DELETE CASCADE,
term TEXT NOT NULL, -- normalized term TEXT NOT NULL, -- normalized
term_seg TEXT, -- segmented and filtered for fillers term_seg TEXT, -- segmented and filtered for fillers
reading TEXT NOT NULL, -- normalized reading TEXT NOT NULL, -- normalized
frequency INTEGER, frequency INTEGER,
PRIMARY KEY (id, dict_id) PRIMARY KEY (id, dict_id)
); );
CREATE INDEX ja_search_term ON ja_search (term); CREATE INDEX ja_search_term ON ja_search (term);
CREATE INDEX ja_search_reading ON ja_search (reading); CREATE INDEX ja_search_reading ON ja_search (reading);
CREATE INDEX ja_search_frequency ON ja_search (frequency DESC); CREATE INDEX ja_search_frequency ON ja_search (frequency DESC);
CREATE VIRTUAL TABLE IF NOT EXISTS ja_search_ft USING fts5 ( CREATE VIRTUAL TABLE IF NOT EXISTS ja_search_ft USING fts5 (
term_seg, term_seg,
content='ja_search', content='ja_search',
content_rowid='rowid', content_rowid='rowid',
tokenize=unicode61 tokenize=unicode61
); );
CREATE TRIGGER t_ja_search_ft_after_insert CREATE TRIGGER t_ja_search_ft_after_insert
AFTER INSERT ON ja_search BEGIN AFTER INSERT ON ja_search BEGIN
INSERT INTO ja_search_ft (rowid, term_seg) VALUES (NEW.rowid, NEW.term_seg); INSERT INTO ja_search_ft (rowid, term_seg) VALUES (NEW.rowid, NEW.term_seg);
END; END;
CREATE TRIGGER t_ja_search_ft_after_delete CREATE TRIGGER t_ja_search_ft_after_delete
AFTER DELETE ON ja_search BEGIN AFTER DELETE ON ja_search BEGIN
INSERT INTO ja_search_ft (ja_search_ft, rowid, term_seg) VALUES ('delete', OLD.rowid, OLD.term_seg); INSERT INTO ja_search_ft (ja_search_ft, rowid, term_seg) VALUES ('delete', OLD.rowid, OLD.term_seg);
END; END;
CREATE TRIGGER t_ja_search_ft_after_update CREATE TRIGGER t_ja_search_ft_after_update
AFTER UPDATE ON ja_search BEGIN AFTER UPDATE ON ja_search BEGIN
INSERT INTO ja_search_ft (ja_search_ft, rowid, term_seg) VALUES ('delete', OLD.rowid, OLD.term_seg); INSERT INTO ja_search_ft (ja_search_ft, rowid, term_seg) VALUES ('delete', OLD.rowid, OLD.term_seg);
INSERT INTO ja_search_ft (rowid, term_seg) VALUES (NEW.rowid, NEW.term_seg); INSERT INTO ja_search_ft (rowid, term_seg) VALUES (NEW.rowid, NEW.term_seg);
END; END;
", ",
kind: MigrationKind::Up kind: MigrationKind::Up
} }
] ]
} }
} }
+2 -1
View File
@@ -31,6 +31,7 @@
"icons/128x128@2x.png", "icons/128x128@2x.png",
"icons/icon.icns", "icons/icon.icns",
"icons/icon.ico" "icons/icon.ico"
] ],
"resources": ["resources/mecab-ipadic/system.dic.zst"]
} }
} }