我想对表执行全文搜索(FTS)。问题是 tsvector 删除了单词中的下划线(例如:person_id变成了 person 和 id)。我在哪里可以配置它将去下划线?
泰提前伙计们
恐
怕你将不得不编写自己的解析器(或者在任何情况下调整现有的解析器)。如果您查看ts_debug的输出,您会发现它将下划线视为空格。
=> SELECT ts_debug('person_id');
ts_debug
---------------------------------------------------------------------------
(asciiword,"Word, all ASCII",person,{english_stem},english_stem,{person})
(blank,"Space symbols",_,{},,)
(asciiword,"Word, all ASCII",id,{english_stem},english_stem,{id})
(3 rows)
这是在它被输入字典进行特定语言处理之前发生的。
所以 - 你需要分解你的文本编辑器,在源代码中找到解析器,并说服它下划线应该像连字符或类似的东西一样对待)。如果你以前做过任何 C,应该不会太糟糕。