Очень маленький автономный полнотекстовый поиск HTTP/SCGI Server.

Вышеуказанное и
tools/dir2jsonlНа недавних Debian и Ubuntu устанавливают зависимости с
sudo apt install libsqlite3-tcl make sqlite3 tcl tcllib tdomНа FreebsD с Sudo установить зависимости с
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
Основное использование
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 8080Полный текстовый поиск по умолчанию синтаксис запросов поиска в Tinyfts напоминает синхронизацию веб-поисковой системы. Он может обрабатывать следующие типы выражений.
foo - поиск слова foo ."foo bar" - Поиск фразы foo bar .foo AND bar , foo OR bar , NOT foo - ищите и foo , и bar , по крайней мере один из foo и bar , и документы без foo соответственно. foo AND bar идентичны foo bar . Операторы AND , OR , и NOT должны быть во всех крышках.-foo , -"foo bar" -то же самое, что и NOT foo , NOT "foo bar" . Вы можете позволить своим пользователям написать полные запросы FTS5 с помощью параметра командной строки --query-syntax fts5 . Запросы FTS5 являются более мощными, но обнажают технические детали базовой базы данных. (Например, имена столбцов.) Пользователи, не знакомые с синтаксисом FTS5, найдут его удивительными и столкнутся с ошибками, потому что они не цитировали ни слова, которое имеет особое значение.
TinyFTS ищет содержимое таблицы баз данных SQLITE с конкретной схемой. tools/import импорта в комплекте могут импортировать сериализованные данные (текстовые файлы с одним объектом JSON или словарем TCL на строку) и страницы вики из базы данных Wikit/Nikit в базу данных TinyFTS.
В этом примере показано, как настроить поиск резервной копии вики Tcler. Инструкции должны работать по большинству распределений Linux и FreeBSD с установленными зависимостями и git.
1. Зайдите на https://sourceforge.net/project/showfiles.php?group_id=211498. Загрузите и извлеките последний снимок базы данных Wikit вики Tcler. В настоящее время это wikit-20141112.zip . Предположим, что вы извлекли файл базы данных в ~/Downloads/wikit.tkd .
2. Скачать, создать и проверить крошечные ножки. В этом примере мы используем GIT, чтобы получить последнюю версию разработки.
git clone https://github.com/dbohdan/tinyfts
cd tinyfts
make3. Создайте базу данных поиска TinyFTS из базы данных вики TCLER. Репозиторий включает в себя инструмент импорта, который поддерживает базы данных Wikit. В зависимости от вашего оборудования, это может занять до нескольких минут с размером базы данных ввода в сотнях мегабайт.
./tools/import wikit ~ /Downloads/wikit.tkd /tmp/fts.sqlite34. Начните Tinyfts на http: // localhost: 8080. URL -адрес сервера должен автоматически открываться в вашем браузере. Попробуйте искать.
./tinyfts --db-file /tmp/fts.sqlite3 --title ' tinyfts demo ' --local 8080--behind-reverse-proxy true . Это необходимо для правильного обнаружения IP -адреса клиента, от которого зависит ограничение скорости. Не включайте --behind-reverse-proxy , если Tinyfts не стоит за обратным прокси. Это позволит клиентам подделать свой IP с помощью заголовка X-Real-IP или X-Forwarded-For и уклонения, ограничивающей себя и ограничивает оценку других. Грань WAPP является авторским правом (C) 2017-2022 D. Ричард Хипп и распределен по упрощенной лицензии BSD. Tacit-Copyright (C) 2015-2020 Yegor Bugayenko и распределяется по лицензии MIT.