首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为to_tsvector()函数设置最小令牌长度?

如何为to_tsvector()函数设置最小令牌长度?
EN

Database Administration用户
提问于 2019-07-30 13:24:21
回答 1查看 367关注 0票数 0

我使用to_tsvector()函数解析xml文档,有时它生成小于3个字符的标记:

代码语言:javascript
复制
'1':89,91 '2019':14 '25':4 

我知道,那

代码语言:javascript
复制
to_tsvector([ config regconfig, ] document text) returns tsvector

接受配置作为第一个参数,但我在这里找不到设置最小令牌长度的解决方案。有什么办法吗?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2019-07-30 16:11:24

标记最初由绑定到文本配置的全文搜索解析器生成。PostgreSQL附带的默认文本搜索解析器是不可配置的(不过,它可以被自定义解析器替换)。

解析器输出之后,可以用字典过滤掉标记。创建一个过滤掉短单词的字典相对容易,但它采用了用C语言编写的一对函数的形式。举个例子,这里有一篇博客文章解释了如何编写自定义字典来过滤长单词:文本搜索:避免长词的自定义词典

如果只有合理数量的短词要过滤,另一种选择是将它们全部枚举在一个停止词文件中,并使用内置的简单字典。从文件中:

简单字典模板通过将输入令牌转换为小写,并根据停止词文件进行检查。如果在文件中找到它,则返回一个空数组,导致令牌被丢弃。如果没有,则返回该单词的小写形式为规范化词。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/244128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档