Funcionamiento de la búsqueda

La búsqueda dentro de los índices previamente creados se realiza mediante la CGI prontus_search.cgi.

 

Variables de Invocación

Las variables de invocación son las siguientes:

Nombre

Ejemplo

Descripción

search_prontus

prontus_noticias

Nombre del directorio Prontus donde residen los índices.

search_comodines

yes

'yes' o 'no'. Si es 'yes', permite la búsqueda usando los comodines * y ?.

La búsqueda con comodines utiliza muchos más recursos que la búsqueda sin ellos, por lo que esta modalidad no es recomendable para sitios expuestos a muchas visitas. Valor por defecto: 'no'.

search_idx

prontus3_videos

Indice donde buscar. Puede ser 'ALL', en cuyo caso se busca en todos. Si no se especifica, busca en el índice correspondiente a search_prontus.

search_tmp

search_simple.html

Nombre de la plantilla de búsqueda. Si no se especifica, se usa search.html

Las plantillas se toman de

/< search_prontus >/plantillas/extra/search/pags

search_resxpag

10

Resultados por página, con un máximo correspondiente al parámetro RESPERPAG archivo de configuración.

Si la variable search_resxpag no se especifica, se asume el valor del parámetro RESPERPAG archivo de configuración.

Si el parámetro RESPERPAG no existe en el archivo de configuración, se usa el valor 50.

search_maxpags

20

Resultados por página, con un máximo correspondiente al parámetro MAXPAGS archivo de configuración.

Si la variable search_maxpags no se especifica, se asume el valor del parámetro MAXPAGS archivo de configuración.

Si el parámetro MAXPAGS no existe en el archivo de configuración, se usa el valor 20.

search_texto

flores -fernando

Texto a buscar. Este texto es validado y convertido en un conjunto de palabras. Si están habilitados (search_comodines = yes), pueden usarse los comodines * y ?.

Un signo menos (-) ante una palabra excluirá los resultados que la contengan.

Puede buscarse por todas las palabras o por sólo algunas de ellas, dependiendo de la variable search_modo.

search_pag

5

Página a mostrar. Si no se especifica, se muestra la primera página.

search_orden

CRO

Orden de los resultados (CRO para cronológico o REL para relevancia). Si no se especifica, se ordena cronológico.

search_form

yes

Mostrar formulario ('yes' o 'no'). Valor por defecto: 'yes'.

search_modo

AND

Hacer AND u OR con las palabras ingresadas (por defecto hace OR).

search_seccion

Noticias

Nombre de la sección a mostrar. Si no se especifica, se muestran todas.

search_tema

Santiago

Nombre del tema a mostrar. Si no se especifica, se muestran todos.

search_subtema

Salud

Nombre del subtema a mostrar. Si no se especifica, se muestran todos.

search_fechaini

01/01/05
1-4-2009

Fecha de inicio. Si no se especifica, no se filtra por fecha.

Se aceptan separadores / y -.

search_fechafin

01/06/05
13-7-2008

Fecha de término. Si no se especifica, no se filtra por fecha.

Se aceptan separadores / y -.

search_meta1

imagen

Variable META1, definida en el archivo de configuración.
(Muestra sólo resultados cuya variable META1 corresponde al valor pasado en la invocación)

search_meta2

calle

Variable META2, definida en el archivo de configuración.

(Muestra sólo resultados cuya variable META2 corresponde al valor pasado en la invocación)

search_meta3

zoo

Variable META3, definida en el archivo de configuración.

(Muestra sólo resultados cuya variable META2 corresponde al valor pasado en la invocación)

Modos de Aplicación

 

El Buscador Prontus puede ser utilizado con un mínimo de variables de invocación, con todas ellas o con un conjunto escogido de acuerdo a las características del sitio web. El resto puede no especificarse para utilizar los valores por defecto u ocultarse de la vista del usuario haciendo uso de variables ocultas (campos hidden).

Además, el Buscador Prontus puede ser utilizado con o sin formulario incluido en los resultados, lo cual otorga una gran libertad a la hora de diagramar la mecánica de funcionamiento.

  • Invocación mínima

En caso de poseer el formulario inserto dentro de la plantilla de resultados, basta con invocar:

/cgi-bin/prontus_search.cgi?search_prontus=< instancia de prontus >

por ejemplo:

 

/cgi-bin/prontus_search.cgi?search_prontus=prontus_noticias

para que se despliegue la plantilla por defecto mostrando sólo el formulario de búsqueda.

  • Invocación mínima con cambio de plantilla

Si se desea especificar la plantilla a mostrar, entonces la invocación cambia a:

/cgi-bin/prontus_search.cgi?search_prontus=< instancia de prontus >?search_tmp=< plantilla >

 

Plantillas

La plantilla del buscador contiene básicamente tres áreas:

  1. Área del formulario

  2. Área del resultado

  3. Área de Parámetros

El área del formulario puede ser eliminada (por ejemplo, cuando el buscador consiste en una caja de texto ubicada en otro frame).

 

Área del Formulario

 

Dentro del formulario deben disponerse las variables de invocación que serán utilizadas en una búsqueda.

Si el formulario será desplegado dentro de los resultados, entonces hay que poner atención a la conservación de las elecciones hechas en base a radio-buttons o a combo-boxes.

Las marcas a utilizar dentro de esta área son las siguientes:

 

Marca

Descripción

< !--formulario-- >

...

< !--/formulario-- >

Delimitador del formulario de búsqueda.

Esta parte de la plantilla es omitida si el buscador se invoca con el parámetro search_form=no. Es conveniente que siempre exista, ya que así se pueden hacer pruebas mediante invocación mínima.

%%nombre_variable%%

Muestra el valor de la variable de ese nombre. Puede utilizarse cualquier variable de invocación.

Ejemplo:

%%search_texto%%

%%chk_< nombre_variable >_< contenido >%%

Esta marca es reemplazada por la palabra "checked" si la variable de nombre nombre_variable posee el valor indicado en "contenido".

Esto es utilizado en variables puestas en checkbox o radio buttons.

Ejemplo:

%%chk_search_mode_or%%

%%sel_< nombre_variable >_< contenido >%%

Esta marca es reemplazada por la palabra "selected" si la variable de nombre nombre_variable posee el valor indicado en "contenido".

Esto es utilizado en variables puestas en combo boxes.

Ejemplo:

%%sel_search_idx_raw%%

 

Área del Resultado

 

En el área del resultado aparece el mensaje de resultado de la operación (%%msg%%), la lista de archivos encontrados y links a otras páginas si la cantidad de resultados excede el máximo por página.

Las marcas a utilizar dentro de esta área son las siguientes:

Marca

Descripción

%%msg%%

Mensaje de contexto. P. ej. "50 resultados en orden de importancia." o "No hay resultados.".

< !--resloop-- >

...

< !--/resloop-- >

Estas marcas delimitan el trozo de HTML que se repite para cada respuesta. Dentro de este HTML funcionan las marcas que se describen a continuación.

%%ext%%

Extensión del archivo encontrado. Sirve para integrar íconos o elementos que identifiquen el formato del contenido.

%%num%%

Numero ordinal del artículo (archivo) encontrado.

%%rel%%

% de relevancia relativa (0 al 100).

%%lnk%%

URL del artículo.

%%tit%%

Titular del artículo.

%%fec%%

Fecha de publicación del articulo.

%%res%%

Resumen (primeras palabras) del artículo.

%%sec%%

Sección del artículo.

%%tem%%

Tema del artículo.

%%sub%%

Subtema del artículo.

%%meta1%%

Contenido del campo meta1

%%meta2%%

Contenido del campo meta2

%%meta3%%

Contenido del campo meta3

%%metadata< i >%%

Contenido del campo metadadai, con i = 1..10.

Estos campos sólo sirven para mostrar valores. No es posible buscar por ellos.

%%if(< var >)%%

...

%%/if%%

Contenido condicionado a la existencia de la variable < var > (válido para fec, sec, tem, meta1, meta2, meta3 y metadata< i >).

< !--pags-- >

...

< !--/pags-- >

Delimitador de los links a las distintas páginas de resultados. Si la cantidad de resultados es menor que search_resxpag, esta parte de la plantilla es omitida.

%%pags%%

Links hacia otras páginas de resultados.

%%search_total%%

Muestra el total de resultados encontrados para la búsqueda. Disponible desde la release 11.2.71.

%%_prontus_id%%

Permite diferenciar los resultados por Prontus, en caso de que el buscador esté indexando más de un Prontus. Disponible desde la release 11.2.71.

 

Área de Parámetros

El Área de Parámetros permite personalizar los mensajes que entregará el buscador a los usuarios y las palabras que deben ser omitidas de los resultados.

Los parámetros se incluyen mediante comentarios HTML de la forma:

< !-- parametro = valor(es) -- >

Los parámetros reconocidos son los siguientes:

Parámetro

Descripción

STOPWORDS

Palabras a omitir de los resultados, separadas por comas.

Ejemplo:

< !-- STOPWORDS = to,the,an,in,of -- >

MSG server_busy

Mensaje que será entregado cuando se alcance el máximo de instancias de búsqueda activas.

Ejemplo:

< !-- MSG server_busy = The server is currently busy. Please try again later ... -- >

MSG no_results

Mensaje que será entregado cuando no se encuentren resultados.

Ejemplo:

< !-- MSG no_results = No pages containing your search terms were found. -- >

MSG order_cron

Mensaje que será entregado cuando los resultados se ordenen cronológicamente.

Ejemplo:

< !-- MSG order_cron = by date. -- >

MSG order_rel

Mensaje que será entregado cuando los resultados se ordenen por relevancia

Ejemplo:

< !-- MSG order_rel = by relevance. -- >

MSG results

Mensaje correspondiente a la palabra "resultados".

Ejemplo:

< !-- MSG results = Results -- >

MSG to

Mensaje correspondiente a la palabra "al".

Ejemplo:

< !-- MSG to = to -- >

MSG of

Mensaje correspondiente a la palabra "de".

Ejemplo:

< !-- MSG of = of -- >

Los valores por defecto son los siguientes:

< !-- STOPWORDS = de,el,la,los,las,del,en -- >
< !-- MSG server_busy = Servidor ocupado. Intente más tarde ... -- >
< !-- MSG no_results = No se encontraron resultados. -- >
< !-- MSG order_cron = en orden cronológico. -- >
< !-- MSG order_rel = en orden de importancia. -- >
< !-- MSG results = Resultados -- >
< !-- MSG to = al -- >
< !-- MSG of = de -- >

 

 

  • Ejemplo de plantilla de búsqueda

Un ejemplo muy simple (mínimo) de plantilla de búsqueda se muestra a continuación:

 

< html >
< head >
< title >Buscador Prontus< /title >
< !-- STOPWORDS = de,el,la,los,las,del,en -- >
< !-- MSG server_busy = Servidor ocupado. Intente más tarde ... -- >
< !-- MSG no_results = No se encontraron resultados. -- >
< !-- MSG order_cron = en orden cronológico. -- >
< !-- MSG order_rel = en orden de importancia. -- >
< !-- MSG results = Resultados -- >
< !-- MSG to = al -- >
< !-- MSG of = de -- >
< /head >
< body >
< p >< b >Buscador Prontus< /b >< /p >
< !--formulario-- >
< form name="buscar" method="POST" action="/cgi-bin/prontus_search.cgi" >
< input type="hidden" name="search_prontus" value="prontus_senado" >
< input type="hidden" name="search_tmp" value="search_simple.html" >
< input type="hidden" name="search_idx" value="prontus_senado" >
< input type="hidden" name="search_modo" value="and" >
< input type="hidden" name="search_orden" value="rel" >
< input type="hidden" name="search_resxpag" value="10" >
< input type="hidden" name="search_maxpags" value="20" >
< input type="hidden" name="search_form" value="yes" >
< table border="0" bgcolor="#e0e0e0" width="600" >
< tr >< td >< p >< b >Buscar Por:< /b >< /p >< /td >< td >< input type="text" name="search_texto" size="30" value="%%search_texto%%" >
< input type="submit" name="Buscar" value="Buscar" >< /td >< /tr >
< /table >
< /form >
< !--/formulario-- >
< !--separador-- >
< div style="width:600px;" >%%msg%%< /div >
< div >
< !--resloop-- >
< table width="596" border="0" cellpadding="0" cellspacing="0" >
< tr >
< td width="20" >< /td >
< td width="30" >< /td >
< td >< span >%%if(sec)%% %%sec%% %%/if%% %%if(tem)%% > %%tem%% %%/if%% %%if(sub)%% > %%sub%% %%/if%%< /span >< /td >
< td align="right" valign="bottom" >%%if(fec)%%< span >%%fec%%< /span >%%/if%%< /td >
< /tr >
< tr >
< td >< span >%%num%%.< /span >< /td >
< td valign="center" >
< div style="width:28px; height:5px;" >< div style="width:%%rel%%%; height:5px;" >.< /div >< /div >
< /td >
< td colspan="2" >< a href="%%lnk%%" target="_blank" >< span >%%tit%% [%%ext%%]< /span >< /a >< /td >
< /tr >
< tr >
< td >< /td >
< td >< /td >
< td colspan="2" >< span >%%res%%...< /span >< /td >
< /tr >
< /table >
< !--/resloop-- >
< /div >
< !--pags-- >
< div style="width:600px;" >Vea más en: %%pags%%< /div >
< !--/pags-- >
< /body >
< /html >

 

Restricciones de Ejecución (Unix)

A través del parámetro de configuración SEARCH_MAXEXEC puede limitarse el número de copias o instancias de Prontus Search que pueden estar ejecutándose simultáneamente.

De esta manera, se evita que la estabilidad del servidor pueda verse comprometida por un exceso de interés en el buscador o por ataques de denegación de servicio.

Este parámetro funciona sólo para la versión Unix de Prontus.

 

Ejemplo