Mt77 es un motor de búsqueda rápido, preciso, apto para indexación distribuida y con licencia ISC
- Más veloz en búsquedas que Lucene y que Amberfish, aunque los índices son más grandes y requieren más tiempo de construcción
- Especialmente diseñado para textos en Español
- Puede leer en codificación UTF-8 textos planos, archivos XML, HTML, PDF, y ODF. Con la opción -l el indexador también puede leer textos planos en codificación LATIN1.
- Permite buscar una o varias palabras, así como una o más cadenas.
Se especifican en UTF-8 aunque opcionalmente (empleando opción
-ldel buscador) pueden especificarse en LATIN1. - Permite indexar y buscar metainformación (título, tipo de archivo, sitio de origen, etiquetas XML)
- Escrito en C++ siguiendo estándares, con pruebas de unidad
(con
make limpia; make prueba; make unidad) y de regresión (conmake limpia; make prueba; make regr)
Primero compile con:
./conf.sh
make
Que entre otras generará las herramientas indexador y buscador para
crear un índice y para buscar sobre un índice.
Con las fuentes se incluyen textos de prueba en el directorio regr como
por ejemplo el evangelio de Mateo como texto plano en codificación UTF-8
regr/mateo-utf8.txt.
Para crear un índice m.indice (con relación de documentos indexados
m.relacion) con las palabras de regr/mateo-utf8.txt referenciando el
texto con el URL https://traduccion.pasosdeJesus.org:
rm -f m.indice m.relacion t.indice;
./indexador m.indice t.indice 'https://traduccion.pasosdeJesus.org' regr/mateo-utf8.txt
Para búscar la palabra VERDAD en el índice creado:
./buscador m.indice VERDAD
Que retornará un JSON indicando que encontró 14 ocurrencias de la palabra:
{
"consulta": "VERDAD",
"documentos": 1,
"inicio": 1,
"fin": 1,
"resultados": [
{ "url": "https://traduccion.pasosdeJesus.orgregr/mateo-utf8.txt",
"frec": "14",
"fecha": "2020-08-17"
}
]
}
Para agregar al mismo índice m.indice (con relación m.relacion) las
palabras de regr/marcos-utf8.txt:
./indexador m.indice t.indice 'https://traduccion.pasosdeJesus.org' regr/marcos-utf8.txt
Y al repetir la misma búsqueda ya se obtendrán 1 resultado en Marcos y los 14 de Mateo:
$ ./buscador m.indice VERDAD
{
"consulta": "VERDAD",
"documentos": 2,
"inicio": 1,
"fin": 2,
"resultados": [
{ "url": "https://traduccion.pasosdeJesus.orgregr/marcos-utf8.txt",
"frec": "1",
"fecha": "2020-08-18"
},
{ "url": "https://traduccion.pasosdeJesus.orgregr/mateo-utf8.txt",
"frec": "14",
"fecha": "2020-08-17"
}
]
}
Consta de las siguientes herramientas:
- buscador para buscar palabras o metainformación en un índice
- depueraindice para examinar un índice interactivamente
- indexador para crear un índice a partir de uno o más textos
- operaindice para mezclar índices en disco o RAM y hacer otras operaciones
- txtdeodt extraer texto de un documento odt (Open Document Format)
- unzipuno extraer un sólo archivo de un conteneder ZIP
- tomsha256 Calcula hash sha256 empleando rutina de libtomcrypt-1.16
make allCompila herramientas sin aserciones y con optimizacionesmake pruebaCompila pero activando aserciones y sin optimizacionesmake limpiaLimpia ejecutables generados al compilarmake unidadEjecuta pruebas de unidad. Pero sólo debe hacerse después de compilar con asercionesmake limpia pruebamake regrEjecuta pruebas de regresión (deben pasar tanto con como sin aserciones).make coberturaVerificar cobertura de las pruebas de unidadmake desempenoAnálisis de desempeñomake doctecGenera documentación de fuentes