小编Lei*_*eif的帖子

PostgreSQL 全文搜索:如何更改分类为“单词分隔符”的内容?

使用ts_debug我可以看到 Postgres 将哪些符号视为(我称之为)“单词分隔符”。

例子:

SELECT ts_debug('english', 'Hello. ABC')
Run Code Online (Sandbox Code Playgroud)

结果:

(asciiword,"Word, all ASCII",Hello,{english_stem},english_stem,{hello})
(blank,"Space symbols",". ",{},,)
(asciiword,"Word, all ASCII",ABC,{english_stem},english_stem,{abc})
Run Code Online (Sandbox Code Playgroud)

“.”(点空格)被视为单词分隔符。我的问题是,我需要 Postgres 来处理单个点“。” 也可以作为单词分隔符。

现在,如果我搜索ABC没有包含内容的条目Hello.ABC(点后没有空格),只会找到Hello. ABC.

我正在使用这个搜索查询:

SELECT description FROM incident WHERE
  to_tsvector('english', description) @@ to_tsquery('english', 'ABC')
Run Code Online (Sandbox Code Playgroud)

另一个例子:搜索IOException不会找到java.io.IOException

有没有办法将单个点(没有空格)视为单词分隔符?

postgresql full-text-search postgresql-9.4

6
推荐指数
0
解决办法
560
查看次数