Files
database/initdb.d/26-character.sql
T
2021-10-19 19:41:57 +07:00

27 lines
762 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
);
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;