Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PostgreSQL > TSearch2, ts_rank_cd


Автор: tishaishii 22.12.2009, 16:40
Запрос:
Код

create table public.price (
    id bigint,
    name varchar
);

create index idx01 on public.price using gin(to_tsvector('russian', name));


Заполнил таблицу.
Внимание, запрос:
Код

SELECT
    name, ts_rank_cd(to_tsvector('russian', name), q) AS r
FROM
    ratiss.price,
    to_tsquery('russian', 'САХАР') AS q 
WHERE
     to_tsvector('russian', name) @@ q


Получаю такой ответ:
Код

САХАР-ПЕСОК      0.10000000149011600
ЗАМЕНИТЕЛЬ САХАРА ЦИКЛАМАТ НАТРИЯ      0.10000000149011600
САХАР-ПЕСОК      0.10000000149011600
СТЕКЛО ДЕКОРАТИВНОЕ 4ММХ1.65Х2.16М УЗОРЧАТОЕ САХАРА ЦВЕТ ЖЕЛТЫЙ      0.10000000149011600
ЗАМЕНИТЕЛЬ САХАРА АЦЕСУЛЬФАМ      0.10000000149011600
ЗАМЕНИТЕЛЬ САХАРА СМЕСЕВЫЙ АССОРТ.      0.10000000149011600
САХАР-РАФИНАД      0.10000000149011600
САХАР-ПЕСОК      0.10000000149011600
МЕШОК ПОЛИПРОПИЛЕНОВЫЙ 300Х500ММ 5-7КГ Д/МУКИ, САХАРА, РИСА, ГРЕЧКИ С ЛОГОТИПОМ АССОРТ. ИЗГОТОВЛЕНИЕ      0.10000000149011600
.........


Т.е. при любом сравнении получаю одну и ту же оценку (для конкретного tsquery).
Такая же ситуация и с латиницей к стати ("SONY", "SAMSUNG", ...).

Может где-то что-то подкрутить?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)