2012-05-30 5 views
16

Este artículo me ha ofrecido una gran cantidad de información:
Implement Lucene on Existing .NET/SQL Server stack with multiple webserversImplemente Lucene en una pila existente de .NET/SQL Server con múltiples servidores web: ¿almacenar índices en la base de datos?

me gustaría seguir en la de esta preguntando por la idea de implementar un directorio Lucene que persisten los índices de la base de datos (en mi caso SQL Server) - si alguien tiene un SWAG en esfuerzo que sería útil.

Veo que el reino de Java tiene esto (por ejemplo, Compass), y realmente espero que la gente de Stackoverflow lo haya considerado. Cualquier comentario sería apreciado.

Mi novato es que los índices persistentes en la base de datos podrían ser una forma de resolver el problema de "distribución". Entonces, en lugar de implementar mensajes (no es posible para mi software debido a restricciones de implementación), o programar (estaría bien, la gente de productos siempre se pone nerviosa al tomar decisiones sobre cómo deben ser los datos indexados 'actuales'), el IndexReader vuelve a abrir () actualizaría eficientemente la instantánea de índice en cualquier nodo de servidor.

¿Esto funciona si la concurrencia/carga de DB no es el corazón del problema que se está resolviendo? - Nuestro uso se centra en facilitar diferentes análisis de datos en campos que, a su vez, facilitan diferentes formas de emparejamiento.

Nuestras restricciones/arquitectura de implementación no nos permiten insistir en servidores dedicados a SOLR, por lo que esta noción de distribución ha sido descontada por nosotros.

+0

esto no responde a su pregunta directamente, pero parece que alguien puso en marcha un directorio del servidor SQL en Java (usando JDBC). Tal vez pueda ver el código fuente para calcular cuánto tiempo le llevaría escribir. O bien, puede utilizar Solr como este artículo sugiere: http://www.chrisumbel.com/article/lucene_solr_sql_server –

+0

¿Cuál sería el beneficio de usar Lucene.NET entonces? ¿Por qué no simplemente utiliza SQL Server FullText? –

Respuesta

0

¿Cuánto cambios Índice qué esperas? ¿Cuándo quieres leer en el índice? (¿En el inicio de la aplicación?) Poner el índice en la base de datos y "descargarlo" en la creación del índice podría consumir demasiados recursos.

No estoy seguro sobre sus restricciones de implementación, pero ¿puede tener un espacio de archivos compartido para sus máquinas (por ejemplo, compartido SMB/NFS o similar, o incluso una solución basada en SAN)?

0

que habría un poco de miedo de los problemas de rendimiento con los índices de la db. Eche un vistazo al Elasticsearch. Es el sucesor de la brújula. Requiere Java, pero tiene una interfaz REST muy ordenada para su solución .NET. Elasticsearch admite distribución y replicación entre varios nodos. Puede ejecutarlo en los nodos del servidor web.

0

Esta solución matará el rendimiento del índice, ya que tiene que recuperarlo de la base de datos. Yo recomendaría pasar a una mejor alternativa más reciente /, es decir Solr (usando Solr.NET por ejemplo) o Elasticsearch (usando NEST)

Solr es un alto nivel de interfaz/gerente para los índices de Lucene, con una configuración simplificada, la agrupación , replicación, etc. resuelto para usted. Lo bueno es que si tienes algunos exp. con Lucene, este no será un gran paso

ElasticSearch es un enfoque diferente, pero no es difícil de aprender.

Cuestiones relacionadas