Re: Full-Text Searching: to_tsquery() vs. plainto_tsquery()

Поиск
Список
Период
Сортировка
От Oleg Bartunov
Тема Re: Full-Text Searching: to_tsquery() vs. plainto_tsquery()
Дата
Msg-id Pine.LNX.4.64.0909050058250.6801@sn.sai.msu.ru
обсуждение исходный текст
Ответ на Full-Text Searching: to_tsquery() vs. plainto_tsquery()  (APseudoUtopia <apseudoutopia@gmail.com>)
Список pgsql-general
APseudoUtopia,

you invented your own query language, so you should write your own
function, which transforms  user's query to ::tsquery, if to_tsquery()
and plainto_tsquery() doesn't satisfy your input language.

Notice, that phrase search will be able only in 8.5 version.


Oleg

On Fri, 4 Sep 2009, APseudoUtopia wrote:

> 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?
>
>

     Regards,
         Oleg
_____________________________________________________________
Oleg Bartunov, Research Scientist, Head of AstroNet (www.astronet.ru),
Sternberg Astronomical Institute, Moscow University, Russia
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(495)939-16-83, +007(495)939-23-83

В списке pgsql-general по дате отправления:

Предыдущее
От: Christopher Condit
Дата:
Сообщение: Re: query speed question
Следующее
От: "Vikram Patil"
Дата:
Сообщение: Creating Superuser and password