Proyecto de graduación: Encuentra el código original del buscador
Kit de herramientas de motor de búsqueda de código abierto
1. Lucene
Lucene es actualmente el conjunto de herramientas de motor de búsqueda de texto completo de código abierto más popular. Está afiliado a la Fundación Apache y fue iniciado por Doug Cutting, un experto senior en indexación/recuperación de texto completo, y tomó su iniciativa. segundo nombre de la esposa como nombre del proyecto. Lucene no es una aplicación de búsqueda con todas las funciones, sino un conjunto de herramientas centrado en la indexación y la búsqueda de texto que puede agregar capacidades de indexación y búsqueda a las aplicaciones. Basado en el excelente desempeño de Lucene en indexación y búsqueda, aunque Lucene escrito en Java es inherentemente multiplataforma, se ha adaptado a versiones de muchos otros lenguajes: Perl, Python, C, .Net, etc.
Al igual que otros proyectos de código abierto, Lucene tiene una muy buena arquitectura y puede realizar fácilmente investigación y desarrollo sobre su base, agregar nuevas funciones o desarrollar nuevos sistemas. Lucene en sí solo admite archivos de texto e índices en una pequeña cantidad de idiomas y no tiene funciones de rastreo. Este es el encanto de Lucene. A través de las ricas interfaces proporcionadas por Lucene, podemos agregar segmentadores de palabras de idiomas específicos según nuestras propias necesidades. Analizadores de texto para documentos específicos, etc. Estas implementaciones funcionales específicas se pueden completar con la ayuda de algunos proyectos de software de código abierto relacionados existentes e incluso software comercial. Esto también garantiza el enfoque de Lucene en la indexación y la búsqueda. En la actualidad, se han formado algunos proyectos nuevos de código abierto agregando rastreadores, analizadores de texto, etc. sobre la base de Lucene, como LIUS, Nutch, etc. Y la estructura de datos de índice de Lucene se ha convertido en un estándar de facto y es adoptada por muchos motores de búsqueda.
2. LIUS
LIUS es la abreviatura de Lucene Index Update and Search. Es un marco de indexación de texto desarrollado en base a Lucene, también puede considerarse como un conjunto de herramientas de desarrollo de motores de búsqueda. Realizó algunas investigaciones correspondientes y agregó algunas funciones nuevas basadas en Lucene. Con la ayuda de muchos software de código abierto, LIUS puede analizar e indexar directamente documentos de varios formatos/tipos, incluidos MS Word, MS Excel, MS PowerPoing, RTF, PDF, XML, HTML, TXT, Open Office y JavaBeans, etc. El soporte para Java Beans es muy útil para la indexación de bases de datos y será más preciso cuando los usuarios realicen programación de conexiones de bases de datos para mapeo relacional de objetos (como Hibernate, JDO, TopLink, Torque, etc.). LIUS también agrega una función de actualización de índice basada en Lucene para mejorar aún más la función de mantenimiento de índice. También admite la indexación híbrida, que puede integrar todo el contenido relacionado con una determinada condición en el mismo directorio. Esta función es muy útil cuando es necesario indexar documentos en varios formatos diferentes al mismo tiempo.
3. Egothor
Egothor es un motor de búsqueda de texto completo de alto rendimiento y código abierto, adecuado para aplicaciones de búsqueda basadas en funciones de búsqueda de texto completo. Tiene un algoritmo central similar a Luccene. Este proyecto existe desde hace muchos años. y tiene algunos grupos de usuarios y desarrolladores activos. El iniciador del proyecto Leo Galambos es profesor asistente senior en la Facultad de Matemáticas y Física de la Universidad Carolina de Praga, República Checa. Inició este proyecto durante sus estudios de doctorado.
Más a menudo, pensamos en Egothor como una biblioteca Java para motores de búsqueda de texto completo, que puede agregar capacidades de búsqueda de texto completo a aplicaciones específicas.
Proporciona un módulo booleano extendido para que pueda usarse como módulo booleano o módulo vectorial, y Egothor tiene algunas características únicas que otros motores de búsqueda no tienen: utiliza un nuevo algoritmo dinámico para aumentar efectivamente la velocidad de las actualizaciones del índice, y admite el método de consulta paralela que puede mejorar eficazmente la eficiencia de la consulta. En la versión de Egothor, se agregaron muchas aplicaciones que mejoran la facilidad de uso, como rastreadores y analizadores de texto, y se incorporaron una variedad de métodos de compresión eficientes, como Golomb y Elias-Gamma, para admitir el análisis de texto en una variedad de métodos de uso común. formatos de documentos como HTML, PDF, PS, documentos de Microsoft Office, XLS, etc., que proporcionan una interfaz de indexación GUI y un método de consulta basado en Applet o Web. Además, Egothor se puede configurar fácilmente en una variedad de sistemas de aplicaciones integradas, como motores de búsqueda independientes, buscadores de metadatos y HUB punto a punto.
4. Xapian
Xapian es una biblioteca de desarrollo de motores de búsqueda basada en GPL. Está escrita en lenguaje C y proporciona paquetes vinculantes para facilitar el uso de Perl, Python, PHP, Java, Tck, C#, Ruby y otros lenguajes. él.
Xapian también es un conjunto de herramientas altamente adaptable que permite a los desarrolladores agregar fácilmente capacidades avanzadas de indexación y búsqueda a sus aplicaciones. Admite modelos probabilísticos para la recuperación de información y operaciones de consulta booleanas enriquecidas. El paquete de lanzamiento de Xapian generalmente consta de dos partes: xapian-core y xapian-bindings. El primero es el programa principal principal y el segundo es un paquete vinculado a otros lenguajes.
Xapian proporciona a los desarrolladores de programas API y documentos enriquecidos para la programación, y también proporciona muchos ejemplos de programación y una aplicación Omega basada en Xapian que consta de un indexador y una búsqueda frontal basada en CGI que puede indexar. documentos en varios formatos como HTML, PHP, PDF, PostScript, OpenOffice/StarOffice, RTF, etc. Al utilizar el módulo Perl DBI, puede incluso indexar MySQL, PostgreSQL, SQLite, Sybase, MS SQL, LDAP, ODBC y otras relaciones. La base de datos está indexada y los resultados de la búsqueda se pueden exportar desde el front-end en formato CSV o XML, que los desarrolladores del programa pueden ampliar.
5. Compass
Compass es una arquitectura de motor de búsqueda de código abierto implementada en Lucene. En comparación con Lucene, proporciona una API de motor de búsqueda más simple. Se agregó soporte para el procesamiento de transacciones indexadas, lo que facilita la integración con aplicaciones de procesamiento de transacciones, como bases de datos. No es necesario eliminar el documento original al actualizar, lo que lo hace más sencillo y eficiente. Se utiliza un mecanismo de mapeo entre los recursos y los motores de búsqueda. Este mecanismo hace que sea muy fácil para las aplicaciones que ya usan Lucene o que no admiten objetos y XML migrar a Compass para su desarrollo.
Compass también se puede integrar con Hibernate, Spring y otras arquitecturas, por lo que si desea agregar funciones de motor de búsqueda a proyectos de Hibernate y Spring, Compass es una excelente opción.
Sistema de motor de búsqueda web de código abierto
1. Nutch
Nutch es otro proyecto de código abierto iniciado por Doug Cutting, el autor de Lucene. Es un completo sistema de motor de búsqueda web construido sobre Lucene. Aunque no nació hace mucho, tiene su excelente pedigrí. es ampliamente bienvenido por su uso simple y conveniente. Podemos utilizar Nutch para crear un sistema de motor de búsqueda completo similar a Google para realizar búsquedas en la red de área local y en Internet.
2. YaCy
YaCy es un sistema de motor de búsqueda web distribuido de código abierto basado en P2P (peer-to-peer). Está escrito en lenguaje Java. Su núcleo se distribuye en cientos de computadoras llamado El programa informático de YaCy. -peer forma la red YaCy basada en la red P2P. Toda la red es una arquitectura descentralizada en la que todos los pares YaCy están en una posición de igual a igual. No hay un servidor central unificado. Cada par YaCy puede rastrear de forma independiente. Analice y cree bibliotecas de índices en Internet y compártalas con otros pares de YaCy a través de la red P2P. Además, cada par de YaCy es un servidor proxy independiente, que puede ser utilizado por usuarios locales para indexar y utilizar múltiples mecanismos. se adoptan para proteger la privacidad del usuario. Al mismo tiempo, los usuarios también consultan y devuelven resultados de consultas a través del servidor web que se ejecuta localmente.
El motor de búsqueda YaCy consta principalmente de cinco partes. Además del rastreador, el indexador y la biblioteca de índice de clasificación inversa que tienen los motores de búsqueda comunes, también incluye una interfaz de búsqueda y administración y una interfaz de usuario P2P muy rica. Red para compartir datos.
Sistema de motor de búsqueda de escritorio de código abierto
1. Regain
regain es un sistema de motor de búsqueda de escritorio similar a un motor de búsqueda web. La diferencia es que recuperar no es una búsqueda de contenido de Internet, sino una búsqueda de sus propios documentos o archivos. El uso de recuperar puede buscar fácilmente. grandes cantidades de datos (muchos gigabytes) en segundos. Regain adopta la sintaxis de búsqueda de Lucene, por lo que admite una variedad de métodos de consulta, admite búsqueda de múltiples índices y búsqueda avanzada basada en tipos de archivos, y puede implementar la reescritura de URL y el puente de archivo a HTTP, y también proporciona un mejor soporte para el chino. .
Regain ofrece dos versiones: búsqueda en escritorio y búsqueda en servidor. La búsqueda de escritorio proporciona una búsqueda rápida de documentos en computadoras de escritorio comunes y páginas web en un entorno de red de área local. La versión del servidor se instala principalmente en el servidor web para buscar sitios web y servidores de archivos en entornos LAN.
Regain está escrito en Java, por lo que puede instalarse en todas las plataformas y puede instalarse en Windows, Linux, Mac OS y Solaris. La versión del servidor requiere un entorno JSP y una biblioteca de etiquetas, por lo que es necesario instalar un contenedor Tomcat. La versión de escritorio viene con un pequeño servidor web y la instalación es muy sencilla.
2. Zilverline
Zilverline es un motor de búsqueda de escritorio basado en Lucene que utiliza el marco Spring. Se utiliza principalmente para buscar contenido de LAN y discos locales personales. Admite varios idiomas y tiene su propio nombre en chino. Motor de búsqueda de dinero. Zilverline proporciona un completo soporte de indexación para formatos de documentos, como documentos de Microsoft Office, RTF, Java, CHM, etc., e incluso puede indexar y buscar archivos archivados, como zip, rar y otros archivos archivados. Durante el proceso de indexación, se inicia Zilverline. desde zip, rar, chm y otros archivos para indexar. Zilverline puede admitir la indexación incremental, que solo indexa archivos nuevos, y también admite la indexación automática regular. Su biblioteca de índices se puede almacenar en un lugar al que Zilverline pueda acceder, incluso en DVD. Al mismo tiempo, Zilverline también admite el mapeo de rutas de archivos a URL, lo que permite a los usuarios buscar archivos locales de forma remota.
Zilverline proporciona dos métodos de licencia: aplicaciones personales, de investigación y comerciales. Su forma de lanzamiento es un paquete de guerra simple, que se puede descargar desde su sitio web oficial (http://www.zilverline.org/). .
El entorno de ejecución de Zilverline requiere un entorno Java y un contenedor de Servlet. Generalmente, se puede utilizar Tomcat. Después de asegurarse de que el contenedor JDK y Tomcat estén instalados correctamente, simplemente copie el paquete war de Zilverline (zilverline-1.5.0.war) al directorio de aplicaciones web de Tomcat y reinicie el contenedor Tomcat para comenzar a usar el motor de búsqueda Zilverline.