Обсуждение: Efficient String searching

Поиск
Список
Период
Сортировка

Efficient String searching

От
Robert.Farrugia@go.com.mt
Дата:
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

От
Stephan Szabo
Дата:
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

От
"Ted Rolle"
Дата:
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