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