Re: full text search to_tsquery performance with ispell dictionary

From: Stanislav Raskin <raskin(at)livn(dot)de>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: <pgsql-general(at)postgresql(dot)org>
Subject: Re: full text search to_tsquery performance with ispell dictionary
Date: 2011-05-11 14:39:50
Message-ID: C9F069FB.2031A%raskin@livn.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

>
>
>
>Yes, loading a large dictionary is known to be a fairly expensive
>operation. There's been discussions about how to make it cheaper, but
>nothing's been done yet.
>
> regards, tom lane

Hi Tom,

thanks for the quick response. Bad news for me ;(
We develop ajax-driven web apps, which sort of rely on quick calls to data
services. Each call to a service opens a new connection. This makes the
search service, if using fts and ispell, about 100 times slower than a
"dumb" ILIKE-implementation.

Is there any way of hack or compromise to achieve good performance without
losing fts ability?
I am thinking, for example, of a way to permanently keep a loaded
dictionary in memory instead of loading it for every connection. As I
wrote in response to Pavel Stehule's post, connection pooling is not
really an option.
Our front-end is strictly PHP, so I was thinking about using a single
persistent connection
(http://de.php.net/manual/en/function.pg-pconnect.php) for all calls. Is
there some sort of major disadvantage in this approach from the database
point of view?

Kind regards

--

Stanislav Raskin

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Alex - 2011-05-11 14:41:40 Recursive select / updates
Previous Message Seb 2011-05-11 14:38:04 Re: temporarily disabling foreign keys