Instalación de mnogosearch
¿Qué es mnogosearch?
MnogoSearch es un motor de búsqueda que puede utilizarse dentro de un sitio Web, intranet o un sistema local. Para una búsqueda entre documentos, usted tiene que indexarlos primero utilizando el componente indexado de mnoGoSearch. El indexador es una araña que lee los documentos que usted especifica y almacena la información sobre palabras que este encuentra en una base de datos.
Requisitos
- Apache2 (Servidor Web)
- PHP5 (Soporte lenguaje .php)
- Mysql (Servidor de Base de datos)
Pueden ver como instalar esto en ApachePhpMysql
Instalación
Instale en varios servidores el mnogosearch y tengo problemas con el "auto configurador", por eso voy a mostrarles como configurar manualmente el server, y nos quedamos seguros de que va a funcionar.
apt-get install mnogosearch-mysql mnogosearch-common
Cuando nos pregunte
"Overwrite mongosearch configuration files?"
Seleccionamos NO y terminamos.
Base de datos
En este caso, el indexador guarda los datos en mysql. Vamos a crear una tabla y un usuario para que el mnogosearch pueda guardar sus registros.
Creando la Base de datos con phpmyadmin
Para el que no sea "amigo" de las consolas, vamos por lo "gráfico":
- Nos logueamos como ROOT e ingresamos la contraseña
- Click en "Privilegios"
- Click en "Agregar nuevo usuario"
- Completamos:
- (1) Nombre de usuario: "mnogosearch"
- (2) Servidor: "localhost"
- (3) Click en generar contraseña
- (4) Copiamos y guardamos la contraseña generada en otro lugar porque la vamos a usar después
- (5) Pegamos la contraseña generada en "Contraseña:"
- (6) Pegamos la contraseña generada en "Debe volver a escribir:"
- (7) Seleccionamos la opción en "Crear base de datos con el mismo nombre y otorgue todos los privilegios"
- (8) Abajo de todo presionamos botón "continuar"
Creando la Base de datos por Consola
Para los que le gusta la "acción":
- Abrimos una consola en el servidor como "root" (puede ser por ssh)
- Ingresamos al Mysql con este comando
mysql -u root -p
- Creamos la base de datos llamada "mnogosearch"
CREATE DATABASE mnogosearch
- Creamos un usuario
CREATE USER mnogosearch@localhost IDENTIFIED BY 'contraseña_recordarla_se_usara_mas_adelante';
- Damos permisos totales solamente a la tabla mnogosearch
grant all on mnogosearch.* to mnogosearch;
Configurando conexión del Indexador a la base de datos
Una vez que tenemos nuestra base de datos creada, editamos el archivo de configuración:
nano /etc/mnogosearch/indexer.conf
Buscamos la linea que comienza con "DBAddr"
DBAddr mysql://root@localhost/test/?dbmode=single
Comentamos la linea con un un "#" al comienzo de la linea
Agregamos esta linea modificando previamente el campo contraseña_guardada ( este campo es el que guardamos al crear la tabla y usuario mnogosearch )
DBAddr mysql://mnogosearch:contraseña_guardada@localhost/mnogosearch/?dbmode=single
Quedaría de esta manera:
#DBAddr mysql://root@localhost/test/?dbmode=single DBAddr mysql://mnogosearch:U45y4CTtbVutuy564ert6WD@localhost/mnogosearch/?dbmode=single
Guardamos y salimos del editor
Configurar Apache
Para tener acceso al search.cgi en la configuración del virtualhost de apache es necesario agregar las siguientes líneas:
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>En una instalación por defecto de apache2, el virtualhost lo podés encontrar en:
/etc/apache2/sites-available/default
Creando estructura del indexador
Para que el indexador cree automáticamente la estructura de la tabla mysql solo tenemos que poner este comando:
indexer -Ecreate
En el final de prosedimiento mostrara este resultado
13 queries sent, 13 succeeded, 0 failed
Perfecto. ya tenemos nuestro buscador instalado y listo para usar. podemos ver la web del buscador en
http://la_ip_del_server/cgi-bin/search.cgi (todavia no esta funcionando, tampoco tiene coneccion al mysql)
Configurando el Indexador
Todavia no le dijimos ¿que buscar?
bueno, una vez mas tenemos que configurar el mnogosearch desde su archivo de configuracion en /etc/mnogosearch/indexer.conf
Ates de tocar este archivo.
Tiene varias formar de indexar. puede hacer una indexación local por directorios, puede hacer una indexación por IP, o puede indexar por host y/o virtual hosts. aclaro que soy un arriesgado y un cara dura en hacer este Howto. dado que este programa es muy potente y creo que solo uso el 5% de todo su poder de indexación. Les voy a mostrar de todas las opciones que te da, la que mas se aplica a BAL. pero primero. vamos a tocar un par de cosas de la configuración y agregamos la compatibilidad de indexar .PDF (de no querer indexar los .pdf NO realizar los puntos 1,5,6,7)
- Instalamos Xpdf (herramienta para manejo de archivos PDF)
apt-get install xpdf
- Editamos nuevamente el archivo de configuración:
nano /etc/mnogosearch/indexer.conf
- Cambiamos la linea:
Include stopwords.conf
por:#Include stopwords.conf
- Cambiamos la linea:
Include langmap.conf
por:#Include langmap.conf
- Cambiamos la linea:
Disallow *.rtf *.pdf *.cdf *.ps
por:#Disallow *.rtf *.pdf *.cdf *.ps Disallow *.rtf *.cdf *.ps
- Cambiamos la linea:
AddType application/pdf *.pdf
por:#AddType application/pdf *.pdf AddType application/pdf - String - Match - Insensitive - *.pdf
- Cambiamos la linea:
#Mime application/pdf text/plain "pdftotext $1 -"
por:Mime application/pdf text/plain "/usr/bin/pdftotext $1 -"
Entramos en la última parte, que es indicar al indexer que es lo que tiene que indexar. Como dije antes. hay varias maneras:
- indexación completa vía http
Server http://www.buenosaireslibre.org
Server http://10.4.18.65
- indexación por directorios vía http
Server http://10.4.18.65/carpeta/
- Indexación a archivo vía http
Server http://www.buenosaireslibre.org/index.html
Server http://10.4.18.65/carpeta/archivo.txt
- Indexación por directorios del sistema
file:///var/www/tuweb/
- Indexación de archivos en directorios del sistema
file:///var/www/tuweb/archivo.txt
- Para indexar mas rápido web locales, indicamos el host y el directorio
Server http://open.open.bal/ file:///var/www/open/
- para probar nuestro indexador vamos al final de archivo de configuracion y agregamos esta linea
Server http://wiki.buenosaireslibre.org/
Comenzar Indexacion
Para comenzar a indexar solo tenemos que tipear este comando
indexer
OPEN2:~/1.96# indexer
indexer[7863]: indexer from mnogosearch-3.3.7-mysql started with '/etc/mnogosearch/indexer.conf'
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/
indexer[7863]: [7863]{01} ROBOTS: http://wiki.buenosaireslibre.org/robots.txt
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/JoaquinRivera
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/Pedidos
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/Reuniones/Taller/Materiales
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/%C3%8DndicePorPalabras
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/ListadoDeServicios
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/Mapa
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/P%C3%A1ginaInicial?action=login
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/Nodos%26APs
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/P%C3%A1ginaInicial
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/WiKi
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/Gu%C3%ADas%26HowTos
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/ListadoNodos
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/wiki/common/js/common.js
indexer[7863]: [7863]{01} Unsupported Content-Type 'application/x-javascript'
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/Obelisco
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/C%C3%B3moParticipar
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/BALLS
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/Galer%C3%ADa
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/BuenosAiresLibre
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/Noticias
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/Glosario
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/ListasDeCorreo
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/Objetivo
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/AyudaSobreFormato
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/P%C3%A1ginaInicial?action=AttachFile
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/Reuniones/IRC
indexer[7863]: [7863]{01} URL: http://wiki.buenosaireslibre.org/ReunionesDejemos pasar unos minutos para que indexe algunas webs y presionamos "control + c" para cancelar la indexación. porque solo es una prueba del sistema. Veremos que nos informa cuantos documentos indexo, tiempo, tamaño, etc.
^Cindexer[7863]: [7863]{01} SIGINT received. Terminating. Please wait...
indexer[7863]: [7863]{01} Done (122 seconds, 41 documents, 1081510 bytes, 8.66 Kbytes/sec.) Cada vez que quieran indexar algo . solo lo agregan en el indexer.conf (paso 2 y 8 solamente) el indexador detectara si se eliminaron las webs/archivos y guarda un registro cuando no los encuentra. por X periodo de tiempo este no puede ser encontrado/conectado lo elimina de la base de datos. pasa lo mismo si sacan algo del indexer. igual mas adelante explico como limpiar la base de datos.
Configurando Interfaz Web
La parte mas interezante y la que mas me gusta porque es lo que ve la gente.
antes vimos esta web. http://ip_del_server/cgi-bin/search.cgi bueno ya tenemos indexado una parte del wiki de BAL. pero si buscamos algo tira un error de conexión. esto es porque le falta configurar la coneccion a la base de datos.
- Abrimos una consola
- Editamos el archivo /etc/mnogosearch/search.htm
nano /etc/mnogosearch/search.htm
- buscamos la linea "DBAddr"
DBAddr mysql://root@localhost/test/?dbmode=single
- la remplasamos por la misma que pusimos en el /etc/mnogosearch/indexer.conf
DBAddr mysql://mnogosearch:U45y4CTtbVutuy564ert6WD@localhost/mnogosearch/?dbmode=single
- Guardamos y Salimos
Ingresamos nuevamente al buscador via web. http://ip_del_server/cgi-bin/search.cgi
y buscamos la letra "a" para ver que aparece.
Si llegaste hasta este punto y te funciono. primero te felicito por entenderme que ya es mucho. y segundo hacete una copia de la configuración y empeza a tocar todo lo que se te ocurra.
Mantenimiento de la Base de datos
Si alguna vez queremos purgar la base de datos, lo podemos hacer con el comando -C
indexer -C
Cuando use mas comandos los voy poniendo.
Contribuido por "MatiasFernandez"
Licencia Reconocimiento-Compartir bajo la misma licencia 2.5 Argentina License de Creative Commons.
