lucene.net - Implemente Lucene en la pila de.NET/SQL Server existente con varios servidores web: ¿almacena los índices en la base de datos?
(3)
¿Cuántos cambios de índice 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 puede consumir demasiados recursos.
¿No está seguro de sus restricciones de implementación, pero puede tener un espacio de archivos compartido para sus máquinas (por ejemplo, un recurso compartido de SMB / NFS o similar, o incluso una solución basada en SAN)?
Este artículo me ofreció una gran cantidad de información:
Implemente Lucene en la pila de .NET / SQL Server existente con varios servidores web
Me gustaría continuar con esto preguntando acerca de la idea de implementar un Directorio Lucene que persistiría en los índices de la base de datos (en mi caso, SQL Server), si alguien tiene un SWAG en un esfuerzo que sería útil.
Puedo ver 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 pensamiento de novato es que los índices persistentes en la base de datos serían una manera de resolver el problema de la "distribución". Entonces, en lugar de implementar mensajes (no es posible para mi software debido a restricciones de implementación) o programación (estaría bien, la gente del producto 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.
¿Funciona esto si la concurrencia / carga de DB no es el núcleo del problema que se está resolviendo? - nuestro uso se centra en facilitar diferentes análisis de datos en campos, lo que a su vez facilita diferentes formas de comparación.
Nuestra arquitectura / restricciones de implementación realmente no nos permiten insistir en servidores dedicados para SOLR, por lo que hemos descontado esta noción de distribución.
Esta solución eliminará el rendimiento del índice, ya que tiene que recuperarlo de la base de datos. Recomendaría encarecidamente cambiar a una alternativa más nueva / mejor, que es Solr (usando Solr.NET por ejemplo) o ElasticSearch (usando NEST )
Solr es un administrador / interfaz de alto nivel para los índices de Lucene, con una configuración simplificada, agrupamiento, replicación, etc. resueltos para usted. Lo bueno es que si tienes alguna exp. Con Lucene, este no será un gran paso.
ElasticSearch es un enfoque diferente, pero no es difícil de aprender.
Tendría un poco de miedo a los problemas de rendimiento con los índices en la base de datos. Echa un vistazo a Elasticsearch . Es el sucesor de la brújula. Requiere Java, pero tiene una interfaz REST muy ordenada para su solución .NET. Elasticsearch admite la distribución y replicación entre varios nodos. Puedes ejecutarlo en los nodos del servidor web.