为什么这如此棘手,令牌设置为什么,它不等于 null 也不等于空字符串?
SELECT lexemes
FROM ts_debug('This is a title')
WHERE alias = 'asciiword';
lexemes
---------
{}
{}
{}
{titl}
(4 rows)
Run Code Online (Sandbox Code Playgroud)
好吧..所以我想摆脱{}
,
SELECT lexemes
FROM ts_debug('This is a title')
WHERE alias = 'asciiword'
AND lexemes <> '{}'
AND lexemes <> ARRAY[]::text[]
AND lexemes IS NOT NULL
AND lexemes <> ARRAY[' ']
AND lexemes <> ARRAY[null]::text[];
Run Code Online (Sandbox Code Playgroud)
我知道其中大多数都行不通。,但我完全困惑为什么<> '{}'
不起作用<> ARRAY[]::text;
。我该如何过滤掉这个?
我有一个包含文本列的表格,我想按word搜索,而不是lexeme。更重要的是,我想按单词而不是词素进行索引。我们有大量代码引用的错误转储,它们不适用于任何自然语言词典。
Postgres 有没有办法让 FTS 按单词边界解析而不将单词解析为词素?如果我必须定义一个边界字符列表和一个跳过词目录,那可能没问题。这是否需要制作某种自定义词典,还是已经有类似的东西可用?
我一直认为我错过了一些明显的东西,然后找不到它。
目前,trigram 索引还可以,但我真的更喜欢文本的唯一关键字解析器。
RDS 上的 Postgres 11.4。