Estoy tratando de decidir sobre una tecnología de búsqueda/indexación de código abierto para un proyecto .Net. Parece que el estándar para los proyectos de Java es Lucene, pero en lo que respecta a .Net, el proyecto Lucene.Net parece bastante inactivo. ¿Sigue siendo esta la mejor opción? ¿O hay otras alternativas viables?¿Cuál es la mejor y más activa tecnología de búsqueda de código abierto .Net?
Respuesta
Si bien no hubo versiones completas (es decir, documentación completa, actualizaciones del sitio web) de Lucene.Net durante bastante tiempo, todavía hay confirmaciones nuevas para su repositorio SVN. La última versión (2.3.2), por ejemplo, fue etiquetada el 24/07/09 (see here). Dado que el desarrollo aún está activo, lo usaría para nuevos proyectos de búsqueda de texto completo.
Pensé que esta iba a ser la respuesta. Lucene.Net es entonces. ¡Gracias a todos! – jamesaharvey
Eche un vistazo a www.searcharoo.net. Tiene un rastreador y funciones como el origen del trabajo, la indexación de documentos de oficina/archivos PDF. El autor es muy activo en los artículos del proyecto de código y responde a las preguntas con bastante rapidez.
lucene.net demorará necesariamente el java ya que es un puerto. Tampoco me gusta cómo el puerto lucene es una copia directa, aunque sí lo hace más fácil en los documentos, supongo. Algo a considerar es usar Solr si no necesita una integración súper estrecha (binaria). Lo he usado antes con buen éxito. Todavía funciona con Lucene, pero creo que es mejor, ya que tiene algunas características mejores. Puede usarlo desde .net a través de un punto final HTTP.
Una pregunta que debe hacerse es lo que realmente necesita/desea en una solución de búsqueda. Hay muchas maneras de implementar la búsqueda y no todas las soluciones funcionan para cada situación.
Aunque no es .NET Yo recomiendo usar Solr como su construida en Lucene y será fácil de integrar dado el hecho de que devuelve XML/HTTP y JSON
SQLite tiene FTS3 (búsqueda de texto 3) que puede haz lo que quieras que haga. No tengo experiencia directa con eso, pero creo que fue desarrollado explícitamente para hacer lo que Lucene hace, al menos en el caso simple. No creo que puedas alterar el tokenizer ni nada (sin modificar el código fuente, de todos modos), pero es una opción.
Utilizamos SQLite FTS en nuestro producto y es muy bueno y mucho más rápido que Lucene.NET para nuestros casos específicos. –
Yo sé esto no está abierto de código, pero es un libre y muy amplia oferta de Microsoft:
Microsoft Search Server 2008 Express
Out-of-the- relevancia de la caja.
Interfaz localizada.
Experiencia de búsqueda extensible.
Sin límites de documentos preestablecidos.
Indización continua de propagación.
Out-of-the-box conectores de indización
resúmenes de contenido.
Hit highlighting.
Mejores apuestas y definiciones.
Corrección de consulta.
Colapso duplicado.
Filtrar por propiedad.
Filtrar por idioma.
Ordenar por fecha.
E-mail/alertas RSS
Sin embargo, se puede acceder fácilmente al límite de tamaño de la base de datos si va a utilizar esto para un índice de búsqueda. Tampoco está diseñado principalmente para la indexación de texto, y aunque la indexación de texto puede funcionar, tendrá un rendimiento bastante bajo en comparación con algo como lucene. –
Interesante- No sabía que MS hizo un producto como este. – RichardOD
ms búsqueda ... ¡puaj! – ADAM
lo que tengo entendido, es necesario "sólo" un índice de texto en su base de datos existente, y la búsqueda de texto completo de SQL Server, en principio, trabajé para ti, pero su implementación/configuración actual es demasiado lenta.
Si yo fuera usted, no optaría por un enfoque completamente diferente (solo piense en el desorden para mantener un índice externo sincronizado con su base de datos, o combine los resultados de la consulta de ambos, etc.). Intente solucionar el problema de rendimiento con SQL Server, ya que nadie supondría seriamente que 6sec para buscar 7k filas es la última palabra para una solución de clase empresarial que se utiliza para algunas de las bases de datos más grandes ... Quizás intente hacer una nueva pregunta acerca de las trampas comunes con esta característica (no soy un experto en esto), y puede terminar con una solución simple en lugar de una reconstrucción completa de su arquitectura de búsqueda;)
Si realmente no insiste en .Net puede probar Sphinx. Código abierto y disponible para todas las plataformas (Windows/Linux).
Lucene.net se implementa en nHibernate, por lo que si también está buscando un asignador O/R, la combinación puede valer la pena una verificación más profunda.
Actualmente desarrollamos un prototipo y la configuración de Lucene se realiza en minutos (utilizamos nhibernate con fluidez).
También estoy probando nHibernate. Gracias por la info. – jamesaharvey
Después de haber usado Lucene.Net en un par de proyectos, también me gustaría agregar la sugerencia de compilar la versión de lucene de Java en el código .net con IKVM.NET. Funciona de maravilla, y nunca tendrá que preocuparse por estar desactualizado con respecto a la versión de Java. También tiene la opción de compilar todas las bibliotecas adicionales y usarlas también (estoy usando el material de búsqueda SIG en un proyecto).
¿Has pensado en crear un proyecto Codeplex para esto? Tal vez configure una compilación periódica – Mikos
+1 para esta opción obvia pero que se pasa por alto fácilmente, dado Lucene.NET. Aún no he pensado en esto; ¿Encontró algún obstáculo que podría dificultar esto para las tiendas que no son Java o es su experiencia con el uso de IKVM para un proyecto de ese tamaño tan suave como parece? –
@Mikos - idea bastante ingeniosa; en caso de que esto resulte factible con un proyecto del tamaño de Lucene, podría ser una buena prioridad para este enfoque, ¿o es este enfoque algo común ya y me acabo de estar perdiendo? –
Solía usar DotLucene pero me encontré con una serie de problemas. uno de los más importantes fue el hecho de que requería plena confianza para funcionar.
Desde entonces he movido a la utilización de SearchAroo: http://www.searcharoo.net/
que utiliza un almacén de datos XML, y he encontrado que su rendimiento es muy similar a puntear Lucene.
si buscas otra opción, definitivamente echaré un vistazo.
- 1. . Motor de búsqueda de código abierto basado en .Net
- 2. ¿Cuál es el "mejor" intérprete de lolcode de código abierto?
- 3. ¿Cuál es el mejor reproductor FLV de código abierto (embebido)?
- 4. ¿Cuál es la biblioteca de programación genética más activa?
- 5. ¿Cuál es la mejor tecnología para automatizar una tarea utilizando las bibliotecas .net?
- 6. ¿Qué orugas de código abierto es la mejor?
- 7. ¿Cuál es el mejor proyecto de fuente abierta de búsqueda de texto completo (se prefiere .NET)?
- 8. ¿Cuál es la mejor solución de código abierto para almacenar datos de series de tiempo?
- 9. ¿Cuál es la mejor herramienta de modelado UML compatible con Linux de código abierto?
- 10. ¿Cuál es el mejor ejemplo de código abierto de una aplicación ligera de Windows?
- 11. ¿Cuál es la herramienta de código abierto más precisa para la división de oraciones?
- 12. Cuál es la diferencia entre las licencias de código abierto
- 13. ¿Cuál es la mejor biblioteca de código abierto de Python para dibujar un gráfico?
- 14. ¿Cuál es la mejor aplicación de búsqueda de Django?
- 15. ¿Cuál es la mejor búsqueda contra un DB con Lucene?
- 16. ¿Cuál es la mejor API de búsqueda de imágenes web?
- 17. ¿Cuál es la mejor herramienta de rastreo web de código abierto escrita en Java?
- 18. ¿Cuál es la mejor biblioteca de visión por computador Java de código abierto?
- 19. ¿Cuál es el mejor sistema de ticket de ayuda de código abierto?
- 20. ¿Cuál es la mejor alternativa de código abierto para MS Team Foundation Server?
- 21. Mejor proveedor de código abierto LINQ
- 22. ¿Cuál es la mejor práctica para bifurcar un proyecto de código abierto?
- 23. ¿Cuál es su herramienta de depuración de código abierto favorita?
- 24. ¿Cuál es la mejor tecnología de ancho de banda bajo Delphi n-tier?
- 25. ¿Cuál es la biblioteca de código abierto multipropósito más útil para Java?
- 26. ¿Qué buena tecnología de servicio web REST de código abierto existe?
- 27. ¿Cuál es el mejor paquete de código abierto de agrupamiento de documentos?
- 28. NO es la tecnología más importante ... ¿pero qué es esto?
- 29. ¿.NET MVC debe aprender tecnología?
- 30. ¿Cuál es la mejor biblioteca .Net XML-RPC?
+1: Estoy realmente interesado en esto. Intenté seguir la ruta del uso del procesador de indexación de texto completo de SQL Server. Funciona bien con la búsqueda de archivos binarios como pdf, doc, etc; pero es un perro lento cuando busca columnas regulares. 6 segundos para buscar una tabla de 7000 filas es, en mi opinión, inaceptable. Por ahora solo estoy usando LIKE 'value%' búsquedas simples que regresan extremadamente rápido. – NotMe