将文件移动到Azure PostgreSQL上的tsearch_data文件夹

fnvucqvd  于 2023-02-25  发布在  PostgreSQL
关注(0)|答案(1)|浏览(153)

我想在Azure上使用PostgreSQL创建自定义词典。我只需要在Postgres sharedir的tsearch_data文件夹中放置一些词典文件。你知道如何实现这一点吗?我可以直接通过Azure门户网站或以某种方式使用psql来完成吗?

cu6pst1q

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来确定)。文件格式只是一个单词列表,每行一个单词。空行和尾随空格将被忽略,将大写字母折叠成小写字母,但不对文件内容进行其他处理。

此外,Azure Portal上没有直接选项来连接到共享目录,但您可以使用Azure PostgreSQL扩展与dict_int扩展的字典,如下所示:-
Extensions - Azure Database for PostgreSQL - Single Server | Microsoft Learn

CREATE EXTENSION IF NOT EXISTS dict_int CASCADE;

相关问题