我使用to_tsvector()函数解析xml文档,有时它生成小于3个字符的标记:
'1':89,91 '2019':14 '25':4 我知道,那
to_tsvector([ config regconfig, ] document text) returns tsvector接受配置作为第一个参数,但我在这里找不到设置最小令牌长度的解决方案。有什么办法吗?
发布于 2019-07-30 16:11:24
标记最初由绑定到文本配置的全文搜索解析器生成。PostgreSQL附带的默认文本搜索解析器是不可配置的(不过,它可以被自定义解析器替换)。
解析器输出之后,可以用字典过滤掉标记。创建一个过滤掉短单词的字典相对容易,但它采用了用C语言编写的一对函数的形式。举个例子,这里有一篇博客文章解释了如何编写自定义字典来过滤长单词:文本搜索:避免长词的自定义词典。
如果只有合理数量的短词要过滤,另一种选择是将它们全部枚举在一个停止词文件中,并使用内置的简单字典。从文件中:
简单字典模板通过将输入令牌转换为小写,并根据停止词文件进行检查。如果在文件中找到它,则返回一个空数组,导致令牌被丢弃。如果没有,则返回该单词的小写形式为规范化词。
https://dba.stackexchange.com/questions/244128
复制相似问题