Files
database/initdb.d/26-character.sql
T
2021-10-17 09:36:24 +07:00

30 lines
873 B
PL/PgSQL
Executable File

CREATE TABLE "character" (
"entry" TEXT NOT NULL PRIMARY KEY,
"sub" TEXT[] NOT NULL,
"sup" TEXT[] NOT NULL,
"var" TEXT[] NOT NULL,
"amalgamation" TEXT[] NOT NULL,
"component" TEXT[] NOT NULL,
"visual" TEXT[] NOT NULL
);
CREATE INDEX idx_character_search ON "character"
USING pgroonga ("entry", "sub", "sup", "var")
WITH (tokenizer='TokenUnigram');
CREATE INDEX idx_character_synonyms ON "character"
USING pgroonga ("entry" pgroonga_text_term_search_ops_v2)
WITH (tokenizer='TokenUnigram');
CREATE OR REPLACE FUNCTION character_expand (TEXT) RETURNS TEXT AS
$func$
DECLARE
exp TEXT := pgroonga_query_expand('radical',
'entry',
'var',
$1);
BEGIN
RETURN $1||' OR '||exp;
END;
$func$ LANGUAGE plpgsql IMMUTABLE;