From: | APseudoUtopia <apseudoutopia(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Full-Text Searching: to_tsquery() vs. plainto_tsquery() |
Date: | 2009-09-04 20:15:53 |
Message-ID: | 27ade5280909041315n229f5fddg4db7b12ee38b5d3c@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hello,
I'm working on setting up a full-text search for some descriptions
stored in my database. I'm running pg 8.4.
From what I can tell, there are two functions. One function,
to_tsquery(), requires that boolean operators (&, |, !) are between
every word. The other function, plainto_tsquery() does not accept
boolean operators, and adds & between every word passed to it.
It seems that these two functions only cover the extremes for
full-text searching. I don't want to force my users to put in & or |
in every single search they do, so to_tsquery() wont work. However, if
they want to use something like "apples AND bananas" it will not work
with plainto_tsquery(). How can I have a "normal" search on my site?
Normal being defined as the following:
-A search for `apples bananas` returns apples OR bananas (with results
containing both ranked high)
-A search for `apples AND bananas` returns results containing both.
-A search for `apple*` returning results that contain apple, apples,
applesauce, etc.
-A search for `"Good Apples"` in quotes returning results that contain
EXACTLY that phrase.
This seems impossible to do with PostgreSQL with the full-text search
functions provided without manually parsing the search string from the
user in my code before querying the DB.
However, even simply parsing the string has it's problems. Simply
replacing spaces with " | " to OR search terms together and replacing
"AND" with & would break the query apart due to formatting issues.
How does everyone implement the typical boolean full-text search in
their database?
From | Date | Subject | |
---|---|---|---|
Next Message | Christopher Condit | 2009-09-04 20:51:01 | Re: query speed question |
Previous Message | Martin Gainty | 2009-09-04 19:37:34 | Re: where clause question |