Re: Docbot search fix

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: PostgreSQL www <pgsql-www(at)postgresql(dot)org>
Cc: Petr Jelinek <pjmodos(at)pjmodos(dot)net>
Subject: Re: Docbot search fix
Date: 2008-05-07 03:27:35
Message-ID: 200805070327.m473RZj01763@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-www


Based on my testing, this has still not been addressed.

---------------------------------------------------------------------------

Bruce Momjian wrote:
>
> Has no one addressed this either?
>
> ---------------------------------------------------------------------------
>
> Petr Jelinek wrote:
> > Hello,
> >
> > there is one problem in current implementation of docbot search on pg
> > website (the "Based on your search term, we recommend the following
> > links" part). It only works for single words which is not how docbot is
> > meant to work.
> > Attached patch handles multi-word search queries the way docbot does.
> >
> > --
> > Regards
> > Petr Jelinek (PJMODOS)
> >
>
> > Index: system/page/search.php
> > ===================================================================
> > --- system/page/search.php (revision 1813)
> > +++ system/page/search.php (working copy)
> > @@ -105,7 +105,15 @@
> >
> > function search_docbot() {
> > if ($this->pagenum > 1) return; // only show docbot urls on first page
> > - $qry = "SELECT url FROM docbot_keylist WHERE \"key\" = '". pg_escape_string($this->query) ."'ORDER BY url ~ 'postgresql.org' desc, url LIMIT ". $this->maxdocbots;
> > + // split query to separate words
> > + $keys = preg_split('/\s+/', str_replace('"', '', $this->query));
> > +
> > + // build the keyword search sql query
> > + $part = "SELECT kurl FROM docbot_key WHERE \"key\" = lower('";
> > + $qry = "SELECT url FROM docbot_url WHERE id IN (\n";
> > + $qry .= join("\n\tINTERSECT\n", array_map(create_function('$e', 'global $part; return $part.pg_escape_string($e)."\')";'), $keys));
> > + $qry .= ")\nORDER BY url ~ 'postgresql.org' desc, url LIMIT ".$this->maxdocbots;
> > +
> > $rs = $this->pg_query($qry,'search');
> > for ($i = 0; $i < pg_num_rows($rs); $i++) {
> > $r = pg_fetch_array($rs, $i, PGSQL_ASSOC);
>
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 3: Have you checked our extensive FAQ?
> >
> > http://www.postgresql.org/docs/faq
>
> --
> Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
> EnterpriseDB http://postgres.enterprisedb.com
>
> + If your life is a hard drive, Christ can be your backup. +
>
> --
> Sent via pgsql-www mailing list (pgsql-www(at)postgresql(dot)org)
> To make changes to your subscription:
> http://mail.postgresql.org/mj/mj_wwwusr?domain=postgresql.org&extra=pgsql-www

--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

In response to

Browse pgsql-www by date

  From Date Subject
Next Message Marti Raudsepp 2008-05-07 08:52:04 No search results for "now"
Previous Message Selena Deckelmann 2008-05-06 23:11:29 Re: [pgsql-advocacy] National community sites @ postgresql.org?