全文搜索中的多个同义词词典匹配 [英] Multiple synonym dictionary matches in full-text searching

查看:19
本文介绍了全文搜索中的多个同义词词典匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在PostgreSQL8.3中执行全文搜索。它工作得非常好,所以我使用同义词词典添加了同义词匹配(例如'bob' == 'robert')。这也很管用。

但是,我注意到它显然只允许一个单词有一个同义词。也就是说,al不能为albertallen

这样对吗?有没有办法在PostgreSQL同义词词典中有多个词典匹配项?

作为参考,下面是我的示例字典文件:

bob    robert
bobby  robert
al     alan
al     albert
al     allen

和创建全文搜索配置的SQL:

CREATE TEXT SEARCH DICTIONARY nickname (TEMPLATE = synonym, SYNONYMS = nickname);
CREATE TEXT SEARCH CONFIGURATION dxp_name (COPY = simple);
ALTER TEXT SEARCH CONFIGURATION dxp_name ALTER MAPPING FOR asciiword WITH nickname, simple;

推荐答案

这是同义词工作方式的限制。您可以做的是将其转过来,如下所示:

bob    robert
bobby  robert
alan   al
albert al
allen  al

它应该产生相同的最终结果,即搜索这两个结果中的任何一个都将匹配相同的内容。

这篇关于全文搜索中的多个同义词词典匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆