This commit is contained in:
parent
ccc5c98a14
commit
146d49be5b
|
@ -111,19 +111,23 @@ def cache_method(cache_key: str):
|
||||||
|
|
||||||
return decorator
|
return decorator
|
||||||
|
|
||||||
|
|
||||||
author_fts_index_name = 'author_full_text_idx'
|
|
||||||
inspector = inspect(engine)
|
inspector = inspect(engine)
|
||||||
authors_indexes = inspector.get_indexes('authors')
|
|
||||||
|
def create_fts_index(table_name, fts_index_name):
|
||||||
|
logger.info(f'Full text index for {table_name}...')
|
||||||
|
authors_indexes = inspector.get_indexes(table_name)
|
||||||
author_fts_index_exists = any(
|
author_fts_index_exists = any(
|
||||||
index['name'] == author_fts_index_name for index in authors_indexes
|
index['name'] == fts_index_name for index in authors_indexes
|
||||||
)
|
)
|
||||||
if not author_fts_index_exists:
|
if not author_fts_index_exists:
|
||||||
with local_session() as session:
|
with local_session() as session:
|
||||||
session.bind.execute(
|
session.bind.execute(
|
||||||
"""
|
"""
|
||||||
CREATE INDEX {index_name} ON author
|
CREATE INDEX {index_name} ON {author_table_name}
|
||||||
USING gin(to_tsvector('russian', COALESCE(name,'') || ' ' || COALESCE(bio,'') || ' ' || COALESCE(about,'')));
|
USING gin(to_tsvector('russian', COALESCE(name,'') || ' ' || COALESCE(bio,'') || ' ' || COALESCE(about,'')));
|
||||||
""".format(index_name=author_fts_index_name)
|
""".format(index_name=fts_index_name, author_table_name=table_name)
|
||||||
)
|
)
|
||||||
logger.info('Full text index created successfully.')
|
logger.info('Full text index created successfully.')
|
||||||
|
|
||||||
|
|
||||||
|
create_fts_index('author', 'author_fts_idx')
|
||||||
|
|
Loading…
Reference in New Issue
Block a user