any solution for full text search in Postgres for partial words

Started by Liu, Mingyiover 21 years ago2 messagesgeneral
Jump to latest
#1Liu, Mingyi
mingyi.liu@gpc-biotech.com

Sorry if this question has been asked before. I tried to search in postgres mailing lists at http://archives.postgresql.org/pgsql-general/ just now and it gave me error "An error occured! Can not connect to search daemon".

Anyway I installed tsearch2 and openFTS and was able to do some searches. However, when I checked searching partial words, it of course does not work (unless the partial word just happens to be the indexed version). IMHO, this is a significant drawback for the FTI as compared to the plain "select * from a where b ilike '%abc%'" which could find the partial words and would not disappoint web users who tried partial words searching. So my question's three-fold:

1. Is there existing open-source FTI for postgres that allows partial words search?
2. What's the main advantage of tsearch2 over plain sql in searching full text besides speed? For the DB I'm working on the performance of plain sql is just fine even if I use "where col1 ilike '%abc%' or col2 ilike '%abc%' or ...', so my thinking is that I might be better off using just sql.
3. Is there a way to define whole-postgres-DB full text search with tsearch2 or openFTS? This would be convenient, and should be used by many postgres-DB-supported sites, although not essential.

BTW, I know I can ask the question on the openFTS mailing list too, but that list seems to be used fairly infrequently. It is also more general than openFTS and more related to postgreSQL solutions.

Thanks,

Mingyi

#2Alvaro Herrera
alvherre@dcc.uchile.cl
In reply to: Liu, Mingyi (#1)
Re: any solution for full text search in Postgres for partial words

On Wed, Aug 25, 2004 at 11:14:36AM -0400, Liu, Mingyi wrote:

1. Is there existing open-source FTI for postgres that allows partial words search?

I think a trigram-based solution could help you here. In 8.0beta there
is a contrib/pg_trgm module that implements such a thing. It isn't
present on previous versions of Postgres though.

See
http://www.sai.msu.su/~megera/oddmuse/index.cgi/ReadmeTrgm

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
Hi! I'm a .signature virus!
cp me into your .signature file to help me spread!