我有一个PostgreSQL用来索引文本内容。
SearchVector列是使用以下代码成功创建的
UPDATE public."DocumentFiles"
SET "SearchVector" = setweight(to_tsvector('pg_catalog.italian', coalesce("DocumentFileName", '')), 'A')
|| setweight(to_tsvector('pg_catalog.italian', coalesce("DocumentFileDescription", '')), 'B')
|| setweight(to_tsvector('pg_catalog.italian', coalesce("DocumentFileContentString", '')), 'B')
WHERE "DocumentFileID" = 123;
内容如下所示:
'011989':1A '5':7A 'cdp':2A 'contonu':10A 'elettr':6A 'grupp':8A 'impiant':5A 'manual':3A 'uso':4A
但是,如果我尝试运行查询以获得的复数或单数
手册
(意大利语:
麦奴
是一个,
马努阿里
为2或更多),则失败:
SELECT "DocumentFileID"
FROM public."DocumentFiles"
where "SearchVector"::tsvector @@ 'manuali'::tsquery;
不返回任何内容
SELECT "DocumentFileID"
FROM public."DocumentFiles"
where "SearchVector"::tsvector @@ 'manuale'::tsquery;
不返回任何内容
只有当我在searchvector字段中准确写入内容时,它才会返回记录:
SELECT "DocumentFileID"
FROM public."DocumentFiles"
where "SearchVector"::tsvector @@ 'manual'::tsquery;
它怎么了?