Thread: Efficient String searching

Efficient String searching

From
Robert.Farrugia@go.com.mt
Date:
Hi,

I have the following problem.  When doing string searches using the ilike
command, no indexes are being used.  This is giving performance problems,
whereas it takes longer to sequentially search the whole table.  Am i
missing something about searching for strings ?  Are there any efficient
methods than using regular expressions or like ?

Thanks
Robert




Re: Efficient String searching

From
Stephan Szabo
Date:
On Tue, 25 Sep 2001 Robert.Farrugia@go.com.mt wrote:

> Hi,
>
> I have the following problem.  When doing string searches using the ilike
> command, no indexes are being used.  This is giving performance problems,
> whereas it takes longer to sequentially search the whole table.  Am i
> missing something about searching for strings ?  Are there any efficient
> methods than using regular expressions or like ?

Unless your pattern is anchored at the start, indexes don't get used.  In
addition, if you're in a locale other than C, indexes don't get used.
It depends on the kind of string searches you're doing.  If you're looking
for words in a longer string, you probably want to look at a full text
indexing solution.  IIRC, there's one in contrib and a few others made by
people on the lists.


Re: Efficient String searching

From
"Ted Rolle"
Date:
Like an implementation of Boyer-Moore-...?

-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org]On Behalf Of Stephan Szabo
Sent: September 25, 2001 10:43 AM
To: Robert.Farrugia@go.com.mt
Cc: pgsql-admin@postgresql.org
Subject: Re: [ADMIN] Efficient String searching


On Tue, 25 Sep 2001 Robert.Farrugia@go.com.mt wrote:

> Hi,
>
> I have the following problem.  When doing string searches using the ilike
> command, no indexes are being used.  This is giving performance problems,
> whereas it takes longer to sequentially search the whole table.  Am i
> missing something about searching for strings ?  Are there any efficient
> methods than using regular expressions or like ?

Unless your pattern is anchored at the start, indexes don't get used.  In
addition, if you're in a locale other than C, indexes don't get used.
It depends on the kind of string searches you're doing.  If you're looking
for words in a longer string, you probably want to look at a full text
indexing solution.  IIRC, there's one in contrib and a few others made by
people on the lists.


---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster