Re: Docbot search fix - Mailing list pgsql-www

From Bruce Momjian
Subject Re: Docbot search fix
Date
Msg-id 200711241936.lAOJasT16593@momjian.us
Whole thread Raw
In response to Docbot search fix  (Petr Jelinek <pjmodos@pjmodos.net>)
Responses Re: Docbot search fix  (Petr Jelinek <pjmodos@pjmodos.net>)
List pgsql-www
Uh, did this get addressed?  If so, I didn't see it.

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

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@momjian.us>        http://momjian.us EnterpriseDB
http://postgres.enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +


pgsql-www by date:

Previous
From: Stefan Kaltenbrunner
Date:
Subject: Re: [pgsql-eu-general] an admin team for the new European servers
Next
From: Bruce Momjian
Date:
Subject: Re: Update of web site for alias name