是否可以创建一个tsquery,当一个单词中找到另一个单词的N个单词时将其匹配?
例如,短语“ 快速的棕色狐狸跳过了 ”,我可以使用“其次是”搜索运营商,但只有当我知道究竟有多少话是什么之间我在寻找:
SELECT to_tsquery('simple', 'quick <4> over') @@ to_tsvector('simple', 'quick brown fox jumps over');
但是我可能事先不知道要寻找的词之间有多少个字,我想做些类似的事情:
to_tsquery('simple', 'quick 4> over')
在这里,我试图指定它可以是以下任意一个:相隔1、2、3或4个字。我似乎无法找到一种方法来对我需要的单词的每个变体都复制原始的“后跟”运算符。
编辑:这必须扩大以适应用户可能创建的任何更大或更复杂的有效tsquery。提供的示例已简化为仅包含相关问题。