Un servidor de búsqueda de texto completo muy pequeño HTTP/SCGI.

Lo anterior y
tools/dir2jsonlSobre la reciente Debian y Ubuntu instalar las dependencias con
sudo apt install libsqlite3-tcl make sqlite3 tcl tcllib tdomEn FreeBSD con sudo instalar las dependencias con
sudo pkg install sqlite3 tcl-sqlite3 tcl86 tcllib tdom
cd /usr/local/bin
sudo ln -s tclsh8.6 tclsh Usage:
tinyfts --db-file path [option ...] [wapp-arg ...]
Options:
--css-file ''
--credits <HTML>
--header <HTML>
--footer <HTML>
--title tinyfts
--subtitle <HTML>
--table tinyfts
--rate-limit 60
--result-limit 100
--log 'access bad-request error rate'
--behind-reverse-proxy false
--snippet-size 20
--title-weight 1000.0
--query-min-length 2
--query-syntax web
El uso básico es
tools/import jsonl example.jsonl example.sqlite3
# Local server
./tinyfts --db-file example.sqlite3 --local 8080
# Server available over the network
./tinyfts --db-file example.sqlite3 --server 8080La sintaxis de consulta de búsqueda de texto completo predeterminado en Tinyfts se asemeja a la de un motor de búsqueda web. Puede manejar los siguientes tipos de expresiones.
foo - Busque la palabra foo ."foo bar" - Busque la frase foo bar .foo AND bar , foo OR bar , NOT foo : busque foo y bar , al menos uno de foo y bar , y documentos sin foo respectivamente. foo AND bar son idénticos a foo bar . Los operadores AND , OR , y NOT deben estar en todos los límites.-foo , -"foo bar" -lo mismo que NOT foo , NOT "foo bar" . Puede permitir que sus usuarios escriban consultas FTS5 completas con la opción Línea de comando --query-syntax fts5 . Las consultas FTS5 son más poderosas pero exponen los detalles técnicos de la base de datos subyacente. (Por ejemplo, los nombres de la columna). Los usuarios que no están familiarizados con la sintaxis FTS5 encontrarán sorprendente y se encontrarán con errores porque no citaron una palabra que tiene un significado especial.
Tinyfts busca el contenido de una tabla de base de datos SQLite con un esquema particular. Las tools/import de la herramienta de importación engrado pueden importar datos serializados (archivos de texto con un objeto JSON o diccionario TCL por línea) y páginas Wiki desde una base de datos Wikit/Nikit a una base de datos Tinyfts.
Este ejemplo muestra cómo configurar la búsqueda de una copia de copia de seguridad del wiki del TCLER. Las instrucciones deben funcionar en la mayoría de las distribuciones de Linux y FreeBSD con las dependencias y el GIT instalado.
1. Vaya a https://sourceforge.net/project/showfiles.php?group_id=211498. Descargue y extraiga la última instantánea de la base de datos de Wikit de la wiki de TCLER. Actualmente es wikit-20141112.zip . Supongamos que ha extraído el archivo de la base de datos a ~/Downloads/wikit.tkd .
2. Descargue, construya y pruebe Tinyfts. En este ejemplo usamos Git para obtener la última versión de desarrollo.
git clone https://github.com/dbohdan/tinyfts
cd tinyfts
make3. Cree una base de datos de búsqueda de Tinyfts a partir de la base de datos Wiki del TCLER. El repositorio incluye una herramienta de importación que admite bases de datos Wikit. Dependiendo de su hardware, esto puede tomar hasta varios minutos con un tamaño de una base de datos de entrada en los cientos de megabytes.
./tools/import wikit ~ /Downloads/wikit.tkd /tmp/fts.sqlite34. Comienza Tinyfts en http: // localhost: 8080. La URL del servidor debe abrirse automáticamente en su navegador. Intenta buscar.
./tinyfts --db-file /tmp/fts.sqlite3 --title ' tinyfts demo ' --local 8080--behind-reverse-proxy true . Es necesario para la detección correcta de direcciones IP del cliente, de la que depende de la tasa de limitación. No habilite --behind-reverse-proxy si tinyfts no está detrás de un proxy inverso. Permitirá a los clientes falsificar su IP con el encabezado X-Real-IP o X-Forwarded-For y evadir la velocidad de limitación y la velocidad limitan a los demás. Mit. WAPP es Copyright (C) 2017-2022 D. Richard Hipp y se distribuye bajo la licencia BSD simplificada. Tacit es Copyright (C) 2015-2020 Yegor Bugayenko y se distribuye bajo la licencia MIT.