que index .net indexing lucene lucene.net full-text-indexing

index - Mejores prácticas de Lucene.Net



lucene index (6)

''Lucene en acción'' es el mejor libro para aprender a indexar y cómo buscar. Incluso cubre las técnicas de búsqueda avanzada y la escritura de analizadores personalizados. Aunque el libro es para Java ... he implementado la búsqueda y la indexación en .net usando este libro.

¿Cuáles son las mejores prácticas en el uso de Lucene.Net? o ¿dónde puedo encontrar una buena muestra de uso de lucene.net?


Con frecuencia utilizamos Lucene.NET cuando los datos son enormes y necesitan tiempos de respuesta súper rápidos para la lectura. En general, incluimos los datos en que necesitamos buscar, así como la clave, para permitirnos asignar nuestros resultados a la tabla de la base de datos que tiene los detalles restantes. Esto nos permite buscar un usuario (en nuestro caso) que verifique su participación anterior. Esto no es solo una búsqueda de nombre de usuario sino una búsqueda que itera sobre varios detalles tratando de encontrar si hay otras instancias de ese usuario (aunque en una forma diferente). Un ejemplo de esto, buscamos la identificación de los usuarios (de un sistema), su ID de otro sistema, tal vez una ID de un sistema de proveedores, un GUID de cookies flash, un GUID de cookies de sitios, etc. Y a medida que encontramos un identificador, busque otras instancias de ese identificador para otras instancias de usuarios. Esto nos permite deduplicar la entrada de los usuarios a uno de muchos sistemas (ya que su participación en cualquier sistema solo se permite una vez cada 24 horas). En SQL, este alogrithm (que era vago) tomaría para siempre! En Lucene.NET toma menos de un segundo. Lucene tiene muchas más posibilidades de búsqueda que SQL Server. Lo que apesta es escribir o actualizar su índice. Esto generalmente se hace como un trabajo ... todo a la vez. Sin embargo, si necesita escribir en el índice actualizándolo en tiempo real, necesita escribir algún código inteligente para asegurarse de que está escrito de forma bloqueada (piense en cola con singleton) o su código se superpondrá y explotará.

Cubro el uso de Lucene.NET en mi libro ( ASP.NET Social Networking ) y puedes encontrar mucha ayuda here .


El problema con Lucene.NET es que no tiene una comunidad activa como Lucene estándar (java), por lo que es como si siempre se ejecutara efectivamente una versión anterior de Lucene. Aunque preferimos .NET, decidimos usar la versión Java de Lucene por este motivo. Si usa Solr también, es muy fácil de integrar.



Simon Green tiene una bonita serie de tres partes sobre cómo configuró Lucene.Net para trabajar con su implementación de NHibernate. La primera parte presenta la serie . La parte dos y la parte tres discuten los detalles técnicos.

Encontré las muestras del código de Lucene.Net muy útiles, aunque mi proyecto no utiliza NHibernate.


Si vas a trabajar con Lucene, compraría un buen libro que lo cubra de la A a la Z. Lucene tiene una curva de aprendizaje muy empinada (en mi opinión). No solo saber cómo buscar es importante, sino también indexarlo . Hacer una búsqueda básica es fácil, pero crear un índice que conste de millones de registros de datos y aún poder realizar una búsqueda rápida es posible pero bastante difícil. No hay un tutorial que lo aprenda.

Recomiendo Lucene en acción, segunda edición de Michael McCandless, Erik Hatcher y Otis Gospodnetić. Aunque está escrito para Lucene y no para Lucene.NET, eso no debería ser un problema ya que la termonología y las API son básicamente las mismas.

Sin embargo, si lo intenta rápidamente, podría leer este sitio . El nombre lo dice todo :-)