我正在尝试设置捷克语全文搜索。我有点困惑,因为我看到了一些cs_cz.affix
and cs_cz.dict
里面的文件tsearch_data
文件夹,但没有捷克语配置(它可能不随 Postgres 一起提供)。
那么我应该创建一个吗?我必须创建/配置哪些光盘?有对捷克语的支持吗?
我应该使用所有可能的字典吗? (Synonym Dictionary, Thesaurus Dictionary, Ispell Dictionary, Snowball Dictionary
)
我能够为以下内容创建捷克配置ispell
dict 它工作正常,但我不确定它是否足够(只是 ispell 配置)。
非常感谢我尝试阅读https://www.postgresql.org/docs/9.5/static/textsearch.html https://www.postgresql.org/docs/9.5/static/textsearch.html但我有点困惑。
我从未尝试过,但只要您准备好从源代码编译 PostgreSQL,您就应该能够创建捷克 Snowball 词干分析器。
中有一个解释src/backend/snowball/README https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob_plain;f=src/backend/snowball/README:
下的文件src/backend/snowball/libstemmer/
and
src/include/snowball/libstemmer/
直接取自他们的 libstemmer_c
分发,仅对文件包含进行一些细微的调整。笔记
这些文件中的大多数实际上是派生文件,而不是主源文件。
主源采用 Snowball 语言,可通过
使用 Snowball 项目中的 Snowball-to-C 编译器。我们选择
将派生文件包含在 PostgreSQL 发行版中,因为大多数
安装不会有可用的 Snowball 编译器。
从新 Snowball 更新 PostgreSQL 源libstemmer_c
分配:
-
复制*.c
文件在libstemmer_c/src_c/
to src/backend/snowball/libstemmer
与替换"../runtime/header.h"
by "header.h"
, 例如
for f in libstemmer_c/src_c/*.c
do
sed 's|\.\./runtime/header\.h|header.h|' $f >libstemmer/`basename $f`
done
(或者,如果您从主 Snowball 重建词干分析器文件
来源,省略"-r ../runtime"
来自 Snowball 编译器开关。)
复制*.c
文件在libstemmer_c/runtime/
to
src/backend/snowball/libstemmer
,然后编辑它们以删除直接包含项
系统标头,例如<stdio.h>
– 它们应该只包括"header.h"
。
(此删除避免了某些平台上的可移植性问题<stdio.h>
对大文件编译选项敏感。)
复制*.h
文件在libstemmer_c/src_c/
and libstemmer_c/runtime/
to src/include/snowball/libstemmer
。在撰写本文时,头文件
不需要任何改变。
检查是否添加或删除了任何词干分析器模块。如果是这样,请编辑
这OBJS
列出在Makefile
,列表#include
's in dict_snowball.c
,以及stemmer_modules[]
表中dict_snowball.c
.
各种停用词文件stopwords/
必须下载
分别从页面雪球.tartarus.org http://snowballstem.org/网站。
注意这些文件必须以UTF-8编码存储。
现在有捷克 Snowball 词干分析器可供使用here http://snowballstem.org/otherapps/oregan/,它为该项目做出了贡献。没有可用的停用词词典,但我相信您可以找到一本或自己创建一本。
真正的工作是安装 Snowball 并使用 Snowball-to-C 编译器创建 C 和头文件以添加到 PostgreSQL 源。
这些文件应该保持稳定,因此升级到新的 PostgreSQL 版本应该不难。
如果您愿意做这项工作,但不想每次都给 PostgreSQL 打补丁并从源代码构建它,您也可以考虑向 PostgreSQL 提交补丁。只要词干分析器工作正常,我预计您不会有太多阻力(但补丁提交过程仍然很乏味)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)