Um servidor de pesquisa http/scgi de texto completo muito pequeno.

O acima e
tools/dir2jsonlEm Debian e Ubuntu recentes instalam as dependências com
sudo apt install libsqlite3-tcl make sqlite3 tcl tcllib tdomEm FreeBSD com sudo instalar as dependências com
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
O uso básico é
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 8080A sintaxe de consulta de pesquisa de texto completo padrão em Tinyfts se assemelha ao de um mecanismo de pesquisa na web. Pode lidar com os seguintes tipos de expressões.
foo - procure a palavra foo ."foo bar" - pesquise a frase foo bar .foo AND bar , foo OR bar , NOT foo - procure foo e bar , pelo menos um de foo e bar , e documentos sem foo , respectivamente. foo AND bar são idênticos ao foo bar . Os operadores AND , OR , e NOT devem estar em todas as tampas.-foo , -"foo bar" -o mesmo que NOT foo , NOT "foo bar" . Você pode permitir que seus usuários escrevam consultas completas do FTS5 com a opção de linha de comando --query-syntax fts5 . As consultas FTS5 são mais poderosas, mas expõem os detalhes técnicos do banco de dados subjacente. (Por exemplo, os nomes das colunas.) Os usuários que não estão familiarizados com a sintaxe FTS5 acharão surpreendente e se deparam com erros porque não citaram uma palavra que tem um significado especial.
O Tinyfts pesquisa o conteúdo de uma tabela de banco de dados SQLite com um esquema específico. As tools/import podem importar dados serializados (arquivos de texto com um objeto JSON ou dicionário TCL por linha) e páginas wiki de um banco de dados Wikit/Nikit para um banco de dados Tinyfts.
Este exemplo mostra como configurar pesquisar uma cópia de backup do wiki do TCLER. As instruções devem funcionar na maioria das distribuições Linux e FreeBSD com as dependências e o GIT instalado.
1. Vá para https://sourceforge.net/project/showfiles.php?group_id=211498. Faça o download e extraia o último banco de dados Wikit Snapshot do wiki do TCLER. Atualmente é wikit-20141112.zip . Vamos supor que você tenha extraído o arquivo de banco de dados para ~/Downloads/wikit.tkd .
2. Baixe, construa e teste Tinyfts. Neste exemplo, usamos o Git para obter a versão mais recente de desenvolvimento.
git clone https://github.com/dbohdan/tinyfts
cd tinyfts
make3. Crie um banco de dados de pesquisa Tinyfts a partir do banco de dados wiki do TCLER. O repositório inclui uma ferramenta de importação que suporta bancos de dados do Wikit. Dependendo do seu hardware, isso pode levar até vários minutos com um tamanho de banco de dados de entrada nas centenas de megabytes.
./tools/import wikit ~ /Downloads/wikit.tkd /tmp/fts.sqlite34. Comece tinyfts em http: // localhost: 8080. O URL do servidor deve abrir automaticamente no seu navegador. Tente pesquisar.
./tinyfts --db-file /tmp/fts.sqlite3 --title ' tinyfts demo ' --local 8080--behind-reverse-proxy true . É necessário para a detecção correta de endereço IP do cliente, que a taxa de limitação depende. Não habilite --behind-reverse-proxy se Tinyfts não estiver por trás de um proxy reverso. Isso permitirá que os clientes falsificem seu IP com o cabeçalho X-Real-IP ou X-Forwarded-For e fugir da taxa que se limitam e a taxa limite os outros. Mit. Wapp é direitos autorais (c) 2017-2022 D. Richard Hipp e é distribuído sob a licença BSD simplificada. O Tacit é Copyright (C) 2015-2020 YEGOR BUGAYENKO e é distribuído sob a licença do MIT.