Rename tsvector to sqlTsvector

This commit is contained in:
PrivateGER 2025-02-19 16:33:01 +01:00
commit 691a9a6be2
No known key found for this signature in database
3 changed files with 4 additions and 4 deletions

View file

@ -222,7 +222,7 @@ fulltextSearch:
# You need to install pgroonga and configure it as a PostgreSQL extension. # You need to install pgroonga and configure it as a PostgreSQL extension.
# In addition to the above, you need to create a pgroonga index on the text column of the note table. # In addition to the above, you need to create a pgroonga index on the text column of the note table.
# see: https://pgroonga.github.io/tutorial/ # see: https://pgroonga.github.io/tutorial/
# - tsvector # - sqlTsvector
# Use Postgres tsvectors. # Use Postgres tsvectors.
# You need to create a generated column and index on the note table to use this, followed by an ANALYZE on the table. Beware, this will take a while to be created and the database will remain locked during this process. # You need to create a generated column and index on the note table to use this, followed by an ANALYZE on the table. Beware, this will take a while to be created and the database will remain locked during this process.
# This also enables advanced search syntax, see documentation of websearch_to_tsquery: https://www.postgresql.org/docs/current/textsearch-controls.html#TEXTSEARCH-PARSING-QUERIES # This also enables advanced search syntax, see documentation of websearch_to_tsquery: https://www.postgresql.org/docs/current/textsearch-controls.html#TEXTSEARCH-PARSING-QUERIES

View file

@ -254,7 +254,7 @@ export type Config = {
}; };
}; };
export type FulltextSearchProvider = 'sqlLike' | 'sqlPgroonga' | 'meilisearch' | 'tsvector'; export type FulltextSearchProvider = 'sqlLike' | 'sqlPgroonga' | 'meilisearch' | 'sqlTsvector';
const _filename = fileURLToPath(import.meta.url); const _filename = fileURLToPath(import.meta.url);
const _dirname = dirname(_filename); const _dirname = dirname(_filename);

View file

@ -241,7 +241,7 @@ export class SearchService {
switch (this.provider) { switch (this.provider) {
case 'sqlLike': case 'sqlLike':
case 'sqlPgroonga': case 'sqlPgroonga':
case 'tsvector': { case 'sqlTsvector': {
// ほとんど内容に差がないのでsqlLikeとsqlPgroongaを同じ処理にしている. // ほとんど内容に差がないのでsqlLikeとsqlPgroongaを同じ処理にしている.
// 今後の拡張で差が出る用であれば関数を分ける. // 今後の拡張で差が出る用であれば関数を分ける.
return this.searchNoteByLike(q, me, opts, pagination); return this.searchNoteByLike(q, me, opts, pagination);
@ -281,7 +281,7 @@ export class SearchService {
if (this.config.fulltextSearch?.provider === 'sqlPgroonga') { if (this.config.fulltextSearch?.provider === 'sqlPgroonga') {
query.andWhere('note.text &@~ :q', {q}); query.andWhere('note.text &@~ :q', {q});
} else if (this.config.fulltextSearch?.provider === "tsvector") { } else if (this.config.fulltextSearch?.provider === "sqlTsvector") {
query.andWhere('note.tsvector_embedding @@ websearch_to_tsquery(:q)', { q }); query.andWhere('note.tsvector_embedding @@ websearch_to_tsquery(:q)', { q });
} else { } else {
query.andWhere('note.text ILIKE :q', { q: `%${ sqlLikeEscape(q) }%` }); query.andWhere('note.text ILIKE :q', { q: `%${ sqlLikeEscape(q) }%` });