2010-09-03 11 views
5

Creo que me falta algo obvio aquí. Tengo que imaginarme que muchas personas abren sus servidores Solr a otros desarrolladores y no quieren que puedan modificar el índice.Ejecutando Solr en modo de solo lectura

¿Hay algo en solrconfig.xml que se puede configurar para realizar con eficacia el índice de sólo lectura?

actualización de aclaración: Mi objetivo es utilizar Solr con un índice Lucene existente gestionado por otra aplicación. Esto funciona bien, pero quiero estar seguro de que Solr nunca intenta escribir en este índice.

+0

¿por qué dices que "mucha gente abre sus servidores Solr a otros desarrolladores"? –

+0

Bueno, dije que * imaginé * que sí.Supongamos que tiene un sitio con mucho contenido, ya está utilizando Solr para conducir la búsqueda del sitio, y desea que otros sitios puedan buscar su contenido. En lugar de crear una API personalizada, Solr podría hacerlo mucho más simple ... – wynz

Respuesta

2

probablemente puede eliminar la línea que define su solr.XmlUpdateRequestHandler en solrconfig.xml.

La replicación es una buena manera de configuración de sólo lectura, mientras que ser capaz de hacer reajustes. Simplemente configure un maestro con acceso restringido y un esclavo que sea de solo lectura (eliminando su XmlUpdateRequestHandler de la configuración). El esclavo se replicará desde el maestro pero no aceptará ninguna indexación directamente.

ACTUALIZACIÓN

Acabo de leer que en Solr 1.4, puede disable component. Lo probé en/update requestHandler y ya no pude indexar.

+0

Aparentemente comentar que el controlador de solicitudes no desactivará nada porque solo actúa como una anulación (de acuerdo con http://wiki.apache.org/solr/ SolrRequestHandler). Supongo que podrías incluir una clase falsa para/handler de solicitud de actualización, pero parece una mala idea. – wynz

+0

gracias, es bueno saber ... –

+0

ver mis actualizaciones sobre la desactivación del componente –

6

La exposición de una instancia de Solr al público en Internet es una mala idea. Aunque puede quitar algunos componentes para hacerlo de solo lectura, simplemente no se diseñó teniendo en cuenta la seguridad, sino que se debe usar como un servicio interno, del mismo modo que no se expondría un RDBMS.

Desde el Solr Security wiki page:

En primer lugar, Solr no lo hace ocuparse de la seguridad, ya sea en el nivel documento o el nivel comunicación. Es fuertemente recomendó que el servidor de aplicaciones que contiene Solr ser un cortafuegos los únicos clientes que tienen acceso a este tipo de Solr son el suyo propio. Una instalación predeterminada/ejemplo de Solr permite que cualquier cliente con acceso a ella para agregar, actualizar y eliminar documentos (y por supuesto búsqueda/lectura también), incluido el acceso a la configuración Solr y esquema archivos y la administración usuario interfaz.

Incluso ajax-solr, un cliente Solr JavaScript pensado para funcionar en un navegador, recommends talking to Solr through a proxy.

Tomemos por ejemplo guardian.co.uk: es bien sabido que they use Solr for searching, pero se construyó un API para que los demás acceder a su contenido. De esta forma pueden define y control exactamente qué y cómo quieren que las personas busquen cosas.

lo contrario, cualquier script kiddie puede escribir un bucle trivial para la instancia de DoS Solr y por lo tanto reducir su sitio.

+0

+1 bien dicho y gracias por los enlaces –

+0

Esas son buenas sugerencias y espero que cualquiera configure Solr para la producción seguiría estas sugerencias. Pero esto no responde la pregunta. Editaré la pregunta para aclarar mi caso de uso particular. – wynz

+0

@wynz: vale, es genial si es solo para uso interno. –

Cuestiones relacionadas