gpt4 book ai didi

postgresql - 如何检索 postgres 中两个 tsvectors 的差异?

转载 作者:行者123 更新时间:2023-11-29 13:31:00 27 4
gpt4 key购买 nike

我有两个 varchars 字段,我想得到一个单词数组,其中一个字段存在,另一个字段不存在,即:

old_text := to_tsvector("The quick brown fox jumps over the lazy dog")
new_text := to_tsvector("The slow brown fox jumps over the quick dog at Friday")
-> new words: ARRAY["slow", "at", "Friday"] ( the order of words doesn't matter )

我试着摆弄 ts_vectors,但没有运气......postgres 中的任何其他功能都支持这样的功能吗?

最佳答案

如果你真的想涉及文本搜索,看看ts_parse() .

SELECT token
FROM ts_parse('default', 'The slow brown fox jumps over the quick dog at Friday')
WHERE tokid != 12 -- blank
EXCEPT
SELECT token
FROM ts_parse('default', 'The quick brown fox jumps over the lazy dog')
WHERE tokid != 12 -- blank

-- will give you

"token"
--------
'slow'
'at'
'Friday'

或者,您可以为此使用正则表达式:

SELECT *
FROM regexp_split_to_table('The slow brown fox jumps over the quick dog at Friday', '\s+')
EXCEPT
SELECT *
FROM regexp_split_to_table('The quick brown fox jumps over the lazy dog', '\s+')

最后,如有必要,使用 array_agg() 将结果累积到数组中。

关于postgresql - 如何检索 postgres 中两个 tsvectors 的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23240166/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com