Postgresql捷克语全文搜索(无默认语言配置)
我正在尝试设置捷克语的全文搜索。我有点困惑,因为我在Postgresql捷克语全文搜索(无默认语言配置),postgresql,full-text-search,Postgresql,Full Text Search,我正在尝试设置捷克语的全文搜索。我有点困惑,因为我在tsearch_data文件夹中看到了一些cs_cz.affix和cs_cz.dict文件,但没有捷克语配置(它可能没有随Postgres一起提供) 那么我应该创建一个吗?我必须创建/配置哪些DIC?对捷克语有什么支持吗? 我应该使用所有可能的命令吗?(同义词词典、同义词词典、Ispell词典、雪球词典) 我能够为ispelldict创建捷克配置,它工作得很好,但是我不确定它是否足够(只是ispell配置) 非常感谢我尝试阅读,但我有点困惑。我
tsearch_data
文件夹中看到了一些cs_cz.affix
和cs_cz.dict
文件,但没有捷克语配置(它可能没有随Postgres一起提供)
那么我应该创建一个吗?我必须创建/配置哪些DIC?对捷克语有什么支持吗?
我应该使用所有可能的命令吗?(同义词词典、同义词词典、Ispell词典、雪球词典
)
我能够为ispell
dict创建捷克配置,它工作得很好,但是我不确定它是否足够(只是ispell配置)
非常感谢我尝试阅读,但我有点困惑。我从未尝试过,但只要您准备好从源代码编译PostgreSQL,就应该能够创建捷克雪球词干分析器 其中有一个解释:
src/backend/snowball/libstemmer/
和
src/include/snowball/libstemmer/
直接从其libstemmer\u c获取
分发,只需对文件包含内容进行一些小的调整。注
这些文件中的大多数实际上是派生文件,而不是主源文件。
主源代码使用Snowball语言,并随附提供
使用Snowball项目中的Snowball-to-C编译器。我们选择
在PostgreSQL发行版中包含派生文件,因为大多数
安装将无法使用Snowball编译器
从新的Snowball更新PostgreSQL源代码
分布:
libstemmer\u c/src\u c/
中的*.c
文件复制到src/backend/snowball/libstemmer
例如,将“./runtime/header.h”
替换为“header.h”
libstemmer_c/src_c/*.c中f的
做
sed's | \.\.\./runtime/header\.h | header.h |'$f>libstemmer/`basename$f`
完成
(或者,如果从主雪球重建词干分析器文件
源代码,只需从Snowball编译器开关中省略“-r../runtime”
。)libstemmer\u c/runtime/
中的*.c
文件复制到
src/backend/snowball/libstemmer
,并对其进行编辑以删除直接包含的内容
例如
之类的系统标题–它们应该只包括“header.h”
。
(此删除可避免在某些平台上出现可移植性问题,
对大文件编译选项敏感。)libstemmer\u c/src\u c/
和libstemmer\u c/runtime/
中的*.h
文件
到src/include/snowball/libstemmer
。此时写入头文件
不需要任何更改Makefile
中的OBJS
列表,以及dict_snowball.c
中的include
列表,以及
dict\u snowball.c
中的表stopwords/
中的各种stopword文件
分别从网站上的网页。
请注意,这些文件必须以UTF-8编码存储如果你愿意做这项工作,但不想修补PostgreSQL并每次都从源建立它,你也可以考虑向PostgreSQL提交补丁。只要词干分析器工作正常,我不希望您在那里遇到太多阻力(但补丁提交过程仍然很乏味)。
我按照指导原则进行了提交(也称为补丁):可以在这里找到衍生的docker
图像: