您好。
我一直在我的论坛上搜索这个主题:les passants - Autour d'une roue - Monocycle.info
该主题的标题是“les passants”。
以前,使用“passants in:title”搜索会将此主题显示在最前面的结果中。
但现在,它显示的是近似结果:
您会看到“passe”、“pass”、“passage”、“passion”等词,甚至在精确字符串“passants”之前……
我猜这是一个错误?
您好。
我一直在我的论坛上搜索这个主题:les passants - Autour d'une roue - Monocycle.info
该主题的标题是“les passants”。
以前,使用“passants in:title”搜索会将此主题显示在最前面的结果中。
但现在,它显示的是近似结果:
您会看到“passe”、“pass”、“passage”、“passion”等词,甚至在精确字符串“passants”之前……
我猜这是一个错误?
恐怕我不知道关于搜索的足够信息,无法判断这是否是故意的,但您可以在单词周围加上双引号以进行精确搜索,如果这有帮助的话?
例如 "passants"
在法语中,passants 在我们搜索帖子内容之前会被简化为 pass 词元。
词元(lexeme)是一个字符串,就像标记(token)一样,但它经过了规范化处理,使得相同单词的不同形式变得一致。
我明白了。
这些词素与语言有关吗?
我觉得在法语中将这样一个词简化为“pass”没有多大意义。
考虑到有很多词以“pass”开头,但与动词“passer”没有(直接或间接)关系,这比帮助更令人困惑。
但如果我们能用双引号精确地定位字符串,那就可以了
。
另外,为什么我上次截图中使用双引号的第二个结果标题中没有“passants”?
这些东西可以在 Postgres 中进行配置,但 Postgres 中的法语实现是导致这种情况的原因:
discourse_development=# select to_tsvector('french', 'passants');
to_tsvector
-------------
'pass':1
(1 row)
discourse_development=# select to_tsvector('english', 'passants');
to_tsvector
-------------
'passant':1
(1 row)
还有更高级的词典可以使用,但它们的配置极其复杂。