Un motor de datos masivo distribuido para la búsqueda vertical en C ++.
Configuración flexible . SF1R podría ser altamente configurable para admitir el motor de búsqueda distribuido o no distribuido. Para los idiomas de Asia, se podrían aplicar diferentes tipos de analizador morflógico o tokenizador dedicado para adaptarse a diferentes situaciones. Cada instancia de SF1R podría configurarse para admitir múltiples colecciones, mientras que el concepto de colección podría compararse con la "tabla" en RDBMS . Las colecciones podrían administrarse totalmente dinámicamente sin detener la instancia del servidor.
Probado comercialmente . SF1R se ha demostrado completamente en entornos comerciales con situaciones complicadas y concurrencia ultra alta. Para satisfacer diferentes tipos de requisitos, se admiten tres tipos de índices dentro de SF1R, incluido el índice invertido basado en archivos, como Lucene, un índice invertido basado en memoria pura con un rendimiento de descompresión ultra alto y un índice de autoestima sucinto. Esta es una implementación práctica para una nube de búsqueda con verticales distribuidos y no distribuidos, todos están detrás de un solo proxy inverso HTTP basado en NGINX para proporcionar una entrada unificada.
Componentes de minería extensibles . En la etapa temprana de SF1R, hay decenas de componentes mineros unidos, como duplicate detection , taxonomy generation , query recommendation , collaborative filtering , ..., etc. Para mantener el repositorio lo más lite posible, hicimos algunos refinamientos para eliminar la mayoría de los componentes mineros. Sin embargo, la arquitectura de SF1R ha garantizado la flexibilidad de introducir cualquiera de ellos, en realidad, uno de índice de índice sucinto, fue encapsulado utilizando componentes mineros para las comodidades.
Se pueden acceder a los documentos chinos aquí, mientras que también preparamos el informe técnico en inglés.
Acabamos de cambiar a C++ 11 para SF1R recientemente, y se requiere GCC 4.8 para construir SF1R correspondientemente. No recomendamos usar Ubuntu para la construcción de proyectos debido a las referencias anidadas entre muchas bibliotecas. Se prefieren la plataforma preferida de CentOS / Redhat / Gentoo / CoreOS. También necesita CMake y Boost 1.56 para construir el repositorio. Aquí hay la lista de repositorios dependientes:
CMake : los módulos CMake requeridos para construir todos los proyectos Izenecloud C ++.
Izenelib : las bibliotecas C ++ de propósito general.
ICMA : la biblioteca de analizador morfológico chino.
IJMA : La biblioteca de analizador morfológico japonés.
ILPLIB : Las bibliotecas de procesamiento del lenguaje.
IDMLIB : las bibliotecas de minería de datos.
Además, se requieren algunos repositorios de terceros:
Tokyocabinet : la biblioteca de valor clave Tokyocabinet se usa rara vez, pero teníamos una encapsulación del método de acceso unificado.
Google Glog : la biblioteca de registro proporcionada por Google.
Thrift : esto es opcional, si desea que SF1R pueda conectarse a Cassandra, se requiere un ahorro y hemos preparado un cliente C ++ Cassandra en Izenelib.
Además, hay dos proyectos adicionales:
Nginx : el proxy inverso basado en Nginx para SF1R. Este es el primer proyecto NGINX en poder conectarse con Zookeeper para conocer la topología de nodo de SF1R.
Ruby Driver : el cliente Ruby para SF1R, también contiene un remitente de API web para fines de prueba.
Para usar SF1R, debe tener archivos de configuración ubicados en el directorio config . Después:
$ cd bin
$ ./CobraProcess -F configConsulte los documentos para más uso.
El proyecto SF1R se publica bajo la licencia Apache, versión 2.0: http://www.apache.org/licenses/license-2.0