From: | Francois Suter <dba(at)paragraf(dot)ch> |
---|---|
To: | pgsql-general <pgsql-general(at)postgresql(dot)org> |
Subject: | PostgreSQL idocs |
Date: | 2002-12-12 10:26:31 |
Message-ID: | BA1E22EA.25DC%dba@paragraf.ch |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi all,
I don't know who is responsible for the PostgreSQL's interactive
documentation so I'm writing to the general ML.
As you probably all noticed, the idocs are pretty limited because it is not
possible to search several words at the same time (either with AND or OR),
as explained in the search help.
Since I recently had to develop something similar (in PHP), here is the code
(attached file), if it can be useful and make the idocs better. It's maybe
not the most efficient algorithm in the world, because it's the first
version and I didn't yet have time to optimize it, but it does the job.
Usage is as follows:
- assume the search text field is called "search"
- assume the text field in the database is called "text"
you can write something like that:
$query = "SELECT * FROM table_name WHERE
".searchString("search","text",true,false);
The third parameter is true for a case-insensitive search (using ILIKE). The
fourth parameters forces all words in the search string to be considered
with "AND".
The way it works is that it takes the search string and tokenizes it around
blanks and + signs. Blanks are interpreted as ORs and + as ANDs. Hence for a
search like "word1+word2 word3", it will return the following string:
"text" ILIKE '%word1%' AND "text" ILIKE '%word2%' OR "text" ILIKE '%word3%'
Pretty rough, but it works. Hope this can help somehow.
--------
Francois
Home page: http://www.monpetitcoin.com/
"We waste our time spending money we don't have to buy things we don't need
to impress people we don't like"
From | Date | Subject | |
---|---|---|---|
Next Message | Francois Suter | 2002-12-12 10:36:04 | Error codes |
Previous Message | Çağıl Şeker | 2002-12-12 10:06:07 | available system commands / stored procedured in PG |