bundle tokenizer
This commit is contained in:
1 parent
ac92453685
commit
fc7831b04e
2 files changed
+64
-63
No files matched your search
@@ -4,72 +4,72 @@ pub struct YomitanSearch;
|
||||
|
||||
impl YomitanSearch {
|
||||
pub fn migrations() -> Vec<Migration> {
|
||||
vec![
|
||||
Migration {
|
||||
version: 1,
|
||||
description: "create yomitan dict-version tables",
|
||||
sql: "
|
||||
CREATE TABLE dict (
|
||||
id INTEGER PRIMARY KEY,
|
||||
title TEXT NOT NULL,
|
||||
revision TEXT NOT NULL,
|
||||
author TEXT,
|
||||
url TEXT,
|
||||
description TEXT,
|
||||
sort_order INTEGER NOT NULL DEFAULT 0,
|
||||
installed_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
bundle_name TEXT, -- custom
|
||||
lang TEXT NOT NULL, -- custom
|
||||
asset_count INTEGER, -- custom
|
||||
source TEXT, -- custom
|
||||
UNIQUE (title, revision)
|
||||
);
|
||||
",
|
||||
kind: MigrationKind::Up,
|
||||
},
|
||||
Migration {
|
||||
version: 1,
|
||||
description: "create yomitan ja query tables",
|
||||
sql: "
|
||||
CREATE TABLE ja_search (
|
||||
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,
|
||||
term TEXT NOT NULL, -- normalized
|
||||
term_seg TEXT, -- segmented and filtered for fillers
|
||||
reading TEXT NOT NULL, -- normalized
|
||||
frequency INTEGER,
|
||||
PRIMARY KEY (id, dict_id)
|
||||
);
|
||||
vec![
|
||||
Migration {
|
||||
version: 1,
|
||||
description: "create yomitan dict-version tables",
|
||||
sql: "
|
||||
CREATE TABLE dict (
|
||||
id INTEGER PRIMARY KEY,
|
||||
title TEXT NOT NULL,
|
||||
revision TEXT NOT NULL,
|
||||
author TEXT,
|
||||
url TEXT,
|
||||
description TEXT,
|
||||
sort_order INTEGER NOT NULL DEFAULT 0,
|
||||
installed_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
bundle_name TEXT, -- custom
|
||||
lang TEXT NOT NULL, -- custom
|
||||
asset_count INTEGER, -- custom
|
||||
source TEXT, -- custom
|
||||
UNIQUE (title, revision)
|
||||
);
|
||||
",
|
||||
kind: MigrationKind::Up,
|
||||
},
|
||||
Migration {
|
||||
version: 1,
|
||||
description: "create yomitan ja query tables",
|
||||
sql: "
|
||||
CREATE TABLE ja_search (
|
||||
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,
|
||||
term TEXT NOT NULL, -- normalized
|
||||
term_seg TEXT, -- segmented and filtered for fillers
|
||||
reading TEXT NOT NULL, -- normalized
|
||||
frequency INTEGER,
|
||||
PRIMARY KEY (id, dict_id)
|
||||
);
|
||||
|
||||
CREATE INDEX ja_search_term ON ja_search (term);
|
||||
CREATE INDEX ja_search_reading ON ja_search (reading);
|
||||
CREATE INDEX ja_search_frequency ON ja_search (frequency DESC);
|
||||
CREATE INDEX ja_search_term ON ja_search (term);
|
||||
CREATE INDEX ja_search_reading ON ja_search (reading);
|
||||
CREATE INDEX ja_search_frequency ON ja_search (frequency DESC);
|
||||
|
||||
CREATE VIRTUAL TABLE IF NOT EXISTS ja_search_ft USING fts5 (
|
||||
term_seg,
|
||||
content='ja_search',
|
||||
content_rowid='rowid',
|
||||
tokenize=unicode61
|
||||
);
|
||||
CREATE VIRTUAL TABLE IF NOT EXISTS ja_search_ft USING fts5 (
|
||||
term_seg,
|
||||
content='ja_search',
|
||||
content_rowid='rowid',
|
||||
tokenize=unicode61
|
||||
);
|
||||
|
||||
CREATE TRIGGER t_ja_search_ft_after_insert
|
||||
AFTER INSERT ON ja_search BEGIN
|
||||
INSERT INTO ja_search_ft (rowid, term_seg) VALUES (NEW.rowid, NEW.term_seg);
|
||||
END;
|
||||
CREATE TRIGGER t_ja_search_ft_after_insert
|
||||
AFTER INSERT ON ja_search BEGIN
|
||||
INSERT INTO ja_search_ft (rowid, term_seg) VALUES (NEW.rowid, NEW.term_seg);
|
||||
END;
|
||||
|
||||
CREATE TRIGGER t_ja_search_ft_after_delete
|
||||
AFTER DELETE ON ja_search BEGIN
|
||||
INSERT INTO ja_search_ft (ja_search_ft, rowid, term_seg) VALUES ('delete', OLD.rowid, OLD.term_seg);
|
||||
END;
|
||||
CREATE TRIGGER t_ja_search_ft_after_delete
|
||||
AFTER DELETE ON ja_search BEGIN
|
||||
INSERT INTO ja_search_ft (ja_search_ft, rowid, term_seg) VALUES ('delete', OLD.rowid, OLD.term_seg);
|
||||
END;
|
||||
|
||||
CREATE TRIGGER t_ja_search_ft_after_update
|
||||
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 (rowid, term_seg) VALUES (NEW.rowid, NEW.term_seg);
|
||||
END;
|
||||
",
|
||||
kind: MigrationKind::Up
|
||||
}
|
||||
]
|
||||
CREATE TRIGGER t_ja_search_ft_after_update
|
||||
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 (rowid, term_seg) VALUES (NEW.rowid, NEW.term_seg);
|
||||
END;
|
||||
",
|
||||
kind: MigrationKind::Up
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user