Postgresql 全文搜索具有少量特定字符的单词

发布于 2024-11-01 02:01:48 字数 219 浏览 1 评论 0原文

这是问题。当执行这个时:

select to_tsvector('simple', 'a.')

我上帝只有一个结果:'a' 因为 ”。”是一个“空格符号”

所以,我的问题是从空格符号列表中删除一些字符的最佳方法是什么, 对于这个(简单)字典或另一个(新创建的)字典。 我找不到系统数据库,也找不到 postgresql 存储这些符号的文件。

here is problem. When execute this:

select to_tsvector('simple', 'a.')

I god just one result: 'a'
because "." is a "Space symbol"

So, my question is what is the best way to remove a few chars from a space symbol list,
for this (simple) dictionary or another (newly created).
I can not find system db, or a file where postgresql store those symbols.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笔落惊风雨 2024-11-08 02:01:48

首先,您需要创建自定义文本搜索配置

CREATE TEXT SEARCH CONFIGURATION your_fts (
    PARSER = pg_catalog."default" );

,然后添加空白标记的映射

ALTER TEXT SEARCH CONFIGURATION name
    ALTER MAPPING FOR blank WITH simple;

,这样您的所有空格和特殊字符都将转到 tsvectors。这可能不是你想要的。您将需要使用 自定义字典 甚至 自定义解析器来区分您的几个特殊字符。

First you need to create your custom text search configuration

CREATE TEXT SEARCH CONFIGURATION your_fts (
    PARSER = pg_catalog."default" );

and then add a mapping for blank tokens

ALTER TEXT SEARCH CONFIGURATION name
    ALTER MAPPING FOR blank WITH simple;

This way you all spaces and special chars will go to tsvectors. Which is probably not what you want. You will need to use custom dictionary or even custom parser to distinguish your few special chars.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文