Pencarian teks lengkap mandiri yang sangat kecil server HTTP/SCGI.

Di atas dan
tools/dir2jsonlPada Debian dan Ubuntu baru -baru ini menginstal dependensi dengan
sudo apt install libsqlite3-tcl make sqlite3 tcl tcllib tdomDi freebsd dengan sudo menginstal dependensi dengan
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
Penggunaan dasarnya adalah
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 8080Sintaks kueri pencarian teks lengkap default di TinyFTs menyerupai mesin pencari web. Ini dapat menangani jenis ekspresi berikut.
foo - cari kata foo ."foo bar" - Cari frasa foo bar .foo AND bar , foo OR bar , NOT foo - cari foo dan bar , setidaknya satu dari foo dan bar , dan dokumen tanpa foo masing -masing. foo AND bar identik dengan foo bar . Operator AND , OR , dan NOT harus ada di semua topi.-foo , -"foo bar" -sama seperti NOT foo , NOT "foo bar" . Anda dapat mengizinkan pengguna Anda untuk menulis kueri FTS5 lengkap dengan opsi baris perintah --query-syntax fts5 . Kueri FTS5 lebih kuat tetapi mengekspos detail teknis dari database yang mendasarinya. (Misalnya, nama kolom.) Pengguna yang tidak terbiasa dengan sintaks FTS5 akan merasa mengejutkan dan mengalami kesalahan karena mereka tidak mengutip kata yang memiliki makna khusus.
TinyFTS mencari isi tabel basis data SQLite dengan skema tertentu. tools/import yang dibundel dapat mengimpor data serial (file teks dengan satu objek JSON atau kamus TCL per baris) dan halaman wiki dari database Wikit/Nikit ke database TinyFTS.
Contoh ini menunjukkan cara mengatur pencarian salinan cadangan wiki TCLER. Instruksi harus bekerja pada sebagian besar distribusi Linux dan FreeBSD dengan ketergantungan dan git terpasang.
1. Buka https://sourceForge.net/project/showfiles.php?group_id=211498. Unduh dan ekstrak snapshot basis data wikit terakhir dari wiki tcler. Saat ini itu adalah wikit-20141112.zip . Mari kita asumsikan Anda telah mengekstraksi file database ke ~/Downloads/wikit.tkd .
2. Unduh, Bangun, dan Uji TinyFTS. Dalam contoh ini kami menggunakan Git untuk mendapatkan versi pengembangan terbaru.
git clone https://github.com/dbohdan/tinyfts
cd tinyfts
make3. Buat database pencarian TinyFTS dari database Wiki TCLER. Repositori mencakup alat impor yang mendukung basis data wikit. Bergantung pada perangkat keras Anda, ini mungkin memakan waktu hingga beberapa menit dengan ukuran basis data input di ratusan megabyte.
./tools/import wikit ~ /Downloads/wikit.tkd /tmp/fts.sqlite34. Mulai tinyfts di http: // localhost: 8080. URL server harus dibuka secara otomatis di browser Anda. Coba cari.
./tinyfts --db-file /tmp/fts.sqlite3 --title ' tinyfts demo ' --local 8080--behind-reverse-proxy true . Ini diperlukan untuk deteksi alamat IP klien yang benar, yang membatasi tingkat. Jangan aktifkan --behind-reverse-proxy jika TinyFTS tidak di belakang proxy terbalik. Ini akan memungkinkan klien memalsukan IP mereka dengan header X-Real-IP atau X-Forwarded-For dan menghindari laju membatasi diri dan tingkat membatasi orang lain. Mit. Wapp adalah Hak Cipta (C) 2017-2022 D. Richard Hipp dan didistribusikan di bawah lisensi BSD yang disederhanakan. Tacit adalah Hak Cipta (C) 2015-2020 Yegor Bugayenko dan didistribusikan di bawah lisensi MIT.