Un très petit serveur HTTP / SCGI de recherche en texte complet.

Ce qui précède et
tools/dir2jsonlSur Debian et Ubuntu récent installent les dépendances avec
sudo apt install libsqlite3-tcl make sqlite3 tcl tcllib tdomSur FreeBSD avec sudo installez les dépendances avec
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
L'utilisation de base est
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 syntaxe de requête de recherche en texte intégral par défaut dans Tinyfts ressemble à celle d'un moteur de recherche Web. Il peut gérer les types d'expressions suivants.
foo - Recherchez le mot foo ."foo bar" - Recherchez la phrase foo bar .foo AND bar , foo OR bar , NOT foo - recherchez à la fois foo et bar , au moins un de foo et bar , et documents sans foo respectivement. foo AND bar sont identiques à foo bar . Les opérateurs AND , OR , et NOT doivent pas être dans tous les plafonds.-foo , -"foo bar" - la même chose que NOT foo , NOT "foo bar" . Vous pouvez permettre à vos utilisateurs d'écrire des requêtes FTS5 complètes avec l'option de ligne de commande --query-syntax fts5 . Les requêtes FTS5 sont plus puissantes mais exposent les détails techniques de la base de données sous-jacente. (Par exemple, les noms de colonnes.) Les utilisateurs qui ne connaissent pas la syntaxe FTS5 le trouveront surprenant et se heurteront à des erreurs car ils n'ont pas cité un mot qui a une signification particulière.
Tinyfts recherche le contenu d'une table de base de données SQLite avec un schéma particulier. Les tools/import importation groupés peuvent importer des données sérialisées (fichiers texte avec un objet JSON ou un dictionnaire TCL par ligne) et des pages Wiki d'une base de données Wikit / Nikit à une base de données Tinyfts.
Cet exemple montre comment configurer la recherche d'une copie de sauvegarde du wiki du TCler. Les instructions doivent fonctionner sur la plupart des distributions Linux et FreeBSD avec les dépendances et GIT installées.
1. Allez sur https://sourceforge.net/project/showfiles.php?group_id=211498. Téléchargez et extraire le dernier instantané de la base de données Wikit du Wiki du TCler. Actuellement, c'est wikit-20141112.zip . Supposons que vous ayez extrait le fichier de base de données sur ~/Downloads/wikit.tkd .
2. Téléchargez, construire et tester les minyfts. Dans cet exemple, nous utilisons GIT pour obtenir la dernière version de développement.
git clone https://github.com/dbohdan/tinyfts
cd tinyfts
make3. Créez une base de données de recherche Tinyfts à partir de la base de données Wiki de TCler. Le référentiel comprend un outil d'importation qui prend en charge les bases de données Wikit. Selon votre matériel, cela peut prendre jusqu'à plusieurs minutes avec une taille de base de données d'entrée dans les centaines de mégaoctets.
./tools/import wikit ~ /Downloads/wikit.tkd /tmp/fts.sqlite34. Commencez Tinyfts sur http: // localhost: 8080. L'URL du serveur doit s'ouvrir automatiquement dans votre navigateur. Essayez de rechercher.
./tinyfts --db-file /tmp/fts.sqlite3 --title ' tinyfts demo ' --local 8080--behind-reverse-proxy true . Il est nécessaire pour la détection correcte de l'adresse IP du client, dont la limitation du taux dépend. Ne permettez pas --behind-reverse-proxy si Tinyfts n'est pas derrière un proxy inversé. Il permettra aux clients de parcourir leur IP avec l'en-tête X-Real-IP ou X-Forwarded-For et d'éviter le taux de limitation et la limite de taux. Mit. WAPP est le droit d'auteur (C) 2017-2022 D. Richard Hipp et est distribué sous la licence BSD simplifiée. Tacit est le droit d'auteur (C) 2015-2020 Yegor Bugayenko et est distribué sous la licence du MIT.