provide SQL scripts for populating search index tables from index.ejsl
This commit is contained in:
parent
044fb506ce
commit
852495fdb0
2 changed files with 36 additions and 0 deletions
17
sql/load.sql
Normal file
17
sql/load.sql
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
-- load.sql
|
||||||
|
|
||||||
|
delete from hugo_input;
|
||||||
|
|
||||||
|
\copy hugo_input (data) from 'public/index.ejsl'
|
||||||
|
|
||||||
|
insert into hugo_text (site, url, title, content)
|
||||||
|
select data ->> 'site', data ->> 'url', data ->> 'title', data ->> 'content'
|
||||||
|
from hugo_input;
|
||||||
|
-- TODO: fill more columns
|
||||||
|
-- TODO: on conflict update ...
|
||||||
|
|
||||||
|
-- sample query:
|
||||||
|
-- select to_tsquery('german', 'prolog') as q \gset
|
||||||
|
-- select url, title,
|
||||||
|
-- ts_headline(content, :q, 'MaxFragments=3, MaxWords=6, MinWords=3')
|
||||||
|
-- from hugo_text where :q @@ content_tsv;
|
19
sql/tables.sql
Normal file
19
sql/tables.sql
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
-- tables.sql
|
||||||
|
|
||||||
|
create table hugo_input (data jsonb);
|
||||||
|
|
||||||
|
create table hugo_text (
|
||||||
|
site text,
|
||||||
|
url text,
|
||||||
|
title text,
|
||||||
|
content text,
|
||||||
|
title_tsv tsvector generated always as
|
||||||
|
(to_tsvector('german', coalesce(title, ''))) stored,
|
||||||
|
content_tsv tsvector generated always as
|
||||||
|
(to_tsvector('german', coalesce(content, ''))) stored,
|
||||||
|
primary key (site, url)
|
||||||
|
);
|
||||||
|
|
||||||
|
create index title_tsv_idx on hugo_text using gin (title_tsv);
|
||||||
|
create index content_tsv_idx on hugo_text using gin (content_tsv);
|
||||||
|
|
Loading…
Add table
Reference in a new issue