Received: from localhost (unknown [200.46.204.184]) by developer.postgresql.org (Postfix) with ESMTP id 078C42E0047 for ; Wed, 7 May 2008 00:27:51 -0300 (ADT) Received: from developer.postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.184]) (amavisd-maia, port 10024) with ESMTP id 66479-05 for ; Wed, 7 May 2008 00:27:33 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from momjian.us (momjian.us [70.90.9.53]) by developer.postgresql.org (Postfix) with ESMTP id 90F9E2E002D for ; Wed, 7 May 2008 00:27:33 -0300 (ADT) Received: (from bruce@localhost) by momjian.us (8.11.6/8.11.6) id m473RZj01763; Tue, 6 May 2008 23:27:35 -0400 (EDT) From: Bruce Momjian Message-Id: <200805070327.m473RZj01763@momjian.us> Subject: Re: Docbot search fix In-Reply-To: <200803062152.m26LqLk08587@momjian.us> To: PostgreSQL www Date: Tue, 6 May 2008 23:27:35 -0400 (EDT) CC: Petr Jelinek X-Mailer: ELM [version 2.4ME+ PL124 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="US-ASCII" X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200805/3 X-Sequence-Number: 15060 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 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@postgresql.org) > To make changes to your subscription: > http://mail.postgresql.org/mj/mj_wwwusr?domain=postgresql.org&extra=pgsql-www -- Bruce Momjian http://momjian.us EnterpriseDB http://enterprisedb.com + If your life is a hard drive, Christ can be your backup. +