Есть два запроса:
SELECT city, country, title, tagline, description, tags, ts_rank_cd(fts, query) AS rank
FROM trips, plainto_tsquery('ru','гауди') query
WHERE query @@ fts
ORDER BY rank DESC
LIMIT 100;
Результат 30 строк допустим.
Следующий:
SELECT city, country, title, tagline, description, tags, ts_rank_cd(fts, query) AS rank
FROM trips, plainto_tsquery('ru','тайны гауди') query
WHERE query @@ fts
ORDER BY rank DESC
LIMIT 100;
результат 5 строк, но почему? я хочу те-же 30 строк что и в первом запросе, но строки по "тайны гауди" что-бы были выше.
индекс RUM, словари есть.
tsvector поле создаю так
UPDATE trips SET fts = (setweight(to_tsvector('ru',city), 'A')||
setweight(to_tsvector('ru',country), 'B')||
setweight(to_tsvector('ru',title), 'C')||
setweight(to_tsvector('ru',tagline), 'C')||
setweight(to_tsvector('ru',description), 'C')||
setweight(to_tsvector('ru',tags), 'C'));
Индекс так:
CREATE INDEX rumidx ON trips USING rum (fts rum_tsvector_ops);
как сделать, что-бы брал документы по частичному совпадению в т.ч.?
Спасибо!