Re: Slow fulltext query plan

From: Florent Guillaume <fg(at)nuxeo(dot)com>
To: pgsql-performance(at)postgresql(dot)org
Subject: Re: Slow fulltext query plan
Date: 2012-04-16 13:11:47
Message-ID: CAF-4BpMpzOeGPnaZY-YAdKWrKS97r6KbdJmNPuyrwpt2Yx7HvA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Tom Lane wrote:
> Benoit Delbosc<bdelbosc(at)nuxeo(dot)com>  writes:
>>  On 13/04/2012 00:25, Tom Lane wrote:
>>>  Is there a reason why you're writing the query in such a
>>>  non-straightforward way, rather than just
>>>
>>>  EXPLAIN ANALYZE SELECT hierarchy.id
>>>  FROM hierarchy
>>>  JOIN fulltext ON fulltext.id = hierarchy.id
>>>  WHERE (TO_TSQUERY('whatever') @@ nx_to_tsvector(fulltext.fulltext))
>>>  OR (TO_TSQUERY('whatever') @@ nx_to_tsvector(fulltext.fulltext_title));
>>
>>  This query is written by a framework, also I thought that is a common
>>  pattern that can be found in the documentation:
>>    http://www.postgresql.org/docs/9.1/interactive/textsearch-controls.html
>
> Well, "common pattern" would be stretching it.  Anyway I've concluded
> that this is in fact a planner bug.  There will be a fix in 9.2, but I'm
> not going to take the risk of back-patching it, so you might want to
> think about changing that framework.

FYI the reason why we have queries that look like what Benoit
describes is that we often use the query alias twice, once for
TO_TSVECTOR and once for TS_RANK_CD, for instance:

SELECT hierarchy.id, TS_RANK_CD(fulltext, query1, 32) as nxscore
FROM hierarchy
JOIN fulltext ON fulltext.id = hierarchy.id,
TO_TSQUERY('whatever') query1,
TO_TSQUERY('whatever') query2
WHERE (query1 @@ nx_to_tsvector(fulltext.fulltext)) OR (query2 @@
nx_to_tsvector(fulltext.fulltext_title))
ORDER BY nxscore DESC;

(as is also described in the doc mentioned btw).

Florent

--
Florent Guillaume, Director of R&D, Nuxeo
Open Source, Java EE based, Enterprise Content Management (ECM)
http://www.nuxeo.com   http://www.nuxeo.org   +33 1 40 33 79 87

Browse pgsql-performance by date

  From Date Subject
Next Message Tomek Walkuski 2012-04-16 14:02:13 SeqScan with full text search
Previous Message Merlin Moncure 2012-04-16 13:10:18 Re: scale up (postgresql vs mssql)