加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL tsvector配置:如何允许特殊字符?

发布时间:2020-12-13 16:25:32 所属栏目:百科 来源:网络整理
导读:我已经在PostgreSQL中设置了一个新的文本搜索配置.此配置使用一个空的停止字文件DictFile和AffFile. 一个简单的测试… SELECT * FROM ts_debug('public.myconfig','C++ and C# and PHP'); …工作(几乎)罚款,除了’C’和’C#’的词汇都是’C’的事实.基本上,
我已经在PostgreSQL中设置了一个新的文本搜索配置.此配置使用一个空的停止字文件DictFile和AffFile.

一个简单的测试…

SELECT * 
  FROM ts_debug('public.myconfig','C++ and C# and PHP');

…工作(几乎)罚款,除了’C’和’C#’的词汇都是’C’的事实.基本上,我想做的就是确保’C’的词汇是’C’,’C#’的词典是’C”,因此用户可以查询’C’.

问题是双重的.

>第一个问题是索引.默认配置使用词干来索引数据,因此您可以获得’C’和’C#’的词法’C’.您可以使用“简单”配置对数据进行索引,但是在索引中最终会出现不需要的字词.我所做的是将’C’转换为’Cplusplus’并进行索引.由于“Cplusplus”没有lexeme,因此它将被复制.您可以通过使索引数据中的“CSharp”对’C#’执行相同的操作.
>第二个问题是搜索.现在索引的数据是可以的,我们需要确保我们转换特殊字的搜索字词.如果用户键入“C”,则需要在执行搜索之前将其转换为“Cplusplus”.

我在DB上创建了一个函数,该函数带有一个字符串,并转换了所有特殊术语的发生.

我没有使用TSearch一段时间,所以我不知道TSearch是否允许您设置和例外列表与允许使用的禁用词一样.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读