Sobre tamaño de tablas en busqueda

Events happening in the community are now at Drupal community events on www.drupal.org.
koffer's picture

Tengo una duda. Un sitio de noticias que manejo empezó a tener un peso considerable en cuatro tablas search_index, field_revision_body, field_data_body, search_dataset, ocupa más o menos 2.6 Gb. por lo que he investigado son tablas que tienen que ver con la búsqueda.

El sitio tiene miles de artículos. mi duda es si es normal que las tablas de búsqueda sean tan pesadas y si es posible hace algo para reducir su peso (que no sea perder toda la información indexada).

o tal vez en estos casos lo mejor es mover la búsqueda fuera de drupal?

Comments

La mejor opción, a mi gusto,

tomas.souto's picture

La mejor opción, a mi gusto, es usar SOLR.

Solr es un motor de búsqueda desarrollado por la fundación Apache, es realmente rapido, se maneja con llamadas estilo REST, pero hay un modulo disponible para Drupal que funciona muy bien, yo lo uso actualmente en un proyecto que tiene una base de datos con mas de 500.000 nodos.

La unica "contra" de SOLR es que, obviamente, tenes que indexar el contenido, esto suele ser bastante pesado la primera vez, luego el mismo modulo se encarga de actualizar aquellos nodos que se actualizaron o crearon.

Se integra completamente con Views, por darte un ejemplo.

Busca en internet, hay mucha data.

PD: una de las particularidades de SOLR que mas me gustan, mas alla de la rapidez, son los facetados para filtrar el contenido.

Tomás Souto
Skype: tomas.souto

Baireswebdesign.com
Digital Agency - Web Design and Development
baireswebdesign.com

Apache Solr + Drupal

davo20019's picture

Al igual que FuLaNo_ te recomiendo usar Apache Solr. Personalmente creo es la mejor solución para las búsquedas.

Para la instalación de solr puedes encontrar bastante información en la web:

https://cwiki.apache.org/confluence/display/solr/Installing+Solr

Los módulos que debes usar son los siguientes:

https://drupal.org/project/search_api
https://drupal.org/project/search_api_solr

Saludos cordiales,
David Loor M.

David Loor M.

y con respecto al peso?

koffer's picture

Gracias por sus respuestas. tengo la duda. que sucede en cuanto al tamaño de lo que se indexa? asumo que con Solr esto se hace fuera de Drupal, pero en términos del espacio en el servidor, ocupa menos espacio o igual que indexar dentro de Drupal?

No se tus datos, los mios con

tomas.souto's picture

No se tus datos, los mios con todo el servidor de SOLR (es un servidor JAVA) ocupa menos de 100mb

Yo uso otros modulos para Solr, mira que variedad que hay!

https://drupal.org/project/apachesolr
https://drupal.org/project/apachesolr_sort
https://drupal.org/project/apachesolr_views

Pero mira todos los que hay:

En la pagina del proyecto apachesolr (el primer link que pase) vas a ver todos los modulos relacionados que puedes usar...

Realmente es muy completo.

Tomás Souto
Skype: tomas.souto

Baireswebdesign.com
Digital Agency - Web Design and Development
baireswebdesign.com

De las tablas que mencionas,

jackbravo's picture

De las tablas que mencionas, search_index y search_dataset efectivamente son del módulo search. Las otras dos: field_revision_body, field_data_body son las tablas del contenido (body) de tus nodos. La field_data_body tiene el contenido actual, y field_revision_body el de revisiones anteriores del contenido. Una manera de reducir espacio es quitando las revisiones.

También podrías probar instalar search_api con search_api_db (desinstalando el módulo core de search). Search_api puede hacer lo mismo que search y mucho más. Y se integra con solr, elasticsearch o con tu misma BD. Si instalar search_api_db no necesitas instalar solr. Usa tu misma BD para guardar el índice, pero lo hace de una manera un poco diferente al módulo core de search y puede usar más o menos tamaño en disco. Sería cosa de probar. Y de ahí migrar a solr si después lo necesitaras es más fácil, porque solo cambias el backend.

Solr de seguro va a ocupar menos espacio.

Gracias por la respuesta jackbravo!

koffer's picture

Creo que definitivamente el camino es search_api_db y Solr.

Una ultima duda como se quitan las revisiones? te refieres a borrar el contenido de la tabla?

Borrar el contenido de una

jackbravo's picture

Borrar el contenido de una tabla así directo normalmente es peligroso, a menos que sepas TODAS las relaciones que tiene esa tabla y borres también esas relaciones =P.

Otra manera es hacerlo manual, ir nodo por nodo borrando sus revisiones pasadas.

Otra manera CREO que podría ser usando bulks views update, y creando una vista no de nodos sino de revisiones y con algo de suerte bulks views update soporta borrar revisiones (no estoy seguro).

Y finalmente otra sería programando =P.

Antes de borrar

gnuget's picture

Antes de borrar nada, ya le echaron un ojo a esto?

https://groups.drupal.org/node/304923

al parecer a ese usuario le funciono y bajo dramaticamente el tamaño de su base de datos.

Yo de nuevo

gnuget's picture

Eh... bueno me refiero a un comentario de ese thread, a este en partícular:

https://groups.drupal.org/node/304923#comment-938078

Checare eso Gnuget!

Latin America

Group categories

Latin America

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week