我想在Azure上使用PostgreSQL创建自定义词典。我只需要在Postgres sharedir的tsearch_data文件夹中放置一些词典文件。你知道如何实现这一点吗?我可以直接通过Azure门户网站或以某种方式使用psql来完成吗?
tsearch_data
cu6pst1q1#
我尝试连接到Azure PostgreSQL共享目录,但无法连接到Azure PostgreSQL共享目录,因为Azure PostgreSQL的部署是在Azure端管理的。我从Azure云 shell bash连接到我的Azure PostgreSQL,如下所示:
psql --host=mydemoserver.postgres.database.azure.com --port=5432 --username=myadmin@mydemoserver --dbname=postgres
输出:-
运行命令以获取当前数据库,只是为了验证连接:-
SELECT current_database();
运行命令以获取如下共享目录设置:-
SELECT name, setting FROM pg_settings WHERE name LIKE '%dir%';
data_directory没有在输出中返回任何路径,当我尝试运行
#!/bin/bash cd /usr/share/postgresql/9.4/tsearch_data
目录没有改变,但你可以直接创建任何字典与psql命令如下:-
CREATE TEXT SEARCH DICTIONARY public.simple_dict ( TEMPLATE = pg_catalog.simple, STOPWORDS = english );
SELECT ts_lexize('public.simple_dict', 'YeS');
注意-此处,english是停止词文件的基本名称。该文件的全名为$SHAREDIR/tsearch_data/english.stop,其中$SHAREDIR表示PostgreSQL安装的共享数据目录,通常为/usr/local/share/postgresql(如果你不确定,可以使用pg_config --sharedir来确定)。文件格式只是一个单词列表,每行一个单词。空行和尾随空格将被忽略,将大写字母折叠成小写字母,但不对文件内容进行其他处理。
english
$SHAREDIR/tsearch_data/english.stop
$SHAREDIR
/usr/local/share/postgresql
pg_config --sharedir
此外,Azure Portal上没有直接选项来连接到共享目录,但您可以使用Azure PostgreSQL扩展与dict_int扩展的字典,如下所示:-Extensions - Azure Database for PostgreSQL - Single Server | Microsoft Learn
CREATE EXTENSION IF NOT EXISTS dict_int CASCADE;
1条答案
按热度按时间cu6pst1q1#
我尝试连接到Azure PostgreSQL共享目录,但无法连接到Azure PostgreSQL共享目录,因为Azure PostgreSQL的部署是在Azure端管理的。
我从Azure云 shell bash连接到我的Azure PostgreSQL,如下所示:
输出:-
运行命令以获取当前数据库,只是为了验证连接:-
输出:-
运行命令以获取如下共享目录设置:-
输出:-
data_directory没有在输出中返回任何路径,当我尝试运行
目录没有改变,但你可以直接创建任何字典与psql命令如下:-
输出:-
注意-此处,
english
是停止词文件的基本名称。该文件的全名为$SHAREDIR/tsearch_data/english.stop
,其中$SHAREDIR
表示PostgreSQL安装的共享数据目录,通常为/usr/local/share/postgresql
(如果你不确定,可以使用pg_config --sharedir
来确定)。文件格式只是一个单词列表,每行一个单词。空行和尾随空格将被忽略,将大写字母折叠成小写字母,但不对文件内容进行其他处理。此外,Azure Portal上没有直接选项来连接到共享目录,但您可以使用Azure PostgreSQL扩展与dict_int扩展的字典,如下所示:-
Extensions - Azure Database for PostgreSQL - Single Server | Microsoft Learn