เซิร์ฟเวอร์การค้นหาแบบเต็มข้อความแบบสแตนด์อโลนขนาดเล็กมาก HTTP/SCGI

ข้างต้นและ
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 barfoo 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 ต่อบรรทัด) และหน้า Wiki จากฐานข้อมูล Wikit/Nikit ไปยังฐานข้อมูล Tinyfts
ตัวอย่างนี้แสดงวิธีตั้งค่าการค้นหาสำเนาสำรองของวิกิของ Tcler คำแนะนำควรทำงานในการแจกแจง Linux ส่วนใหญ่และ FreeBSD ด้วยการพึ่งพาและการติดตั้ง GIT
1. ไปที่ https://sourceforge.net/project/showfiles.php?group_id=211498 ดาวน์โหลดและแยกสแน็ปช็อตฐานข้อมูล Wikit ล่าสุดของ Wiki ของ Tcler ปัจจุบันคือ wikit-20141112.zip สมมติว่าคุณได้แยกไฟล์ฐานข้อมูลเป็น ~/Downloads/wikit.tkd
2. ดาวน์โหลดสร้างและทดสอบ Tinyfts ในตัวอย่างนี้เราใช้ Git เพื่อรับเวอร์ชันการพัฒนาล่าสุด
git clone https://github.com/dbohdan/tinyfts
cd tinyfts
make3. สร้างฐานข้อมูลการค้นหา Tinyfts จากฐานข้อมูล Wiki ของ 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 และหลีกเลี่ยงอัตราการ จำกัด ตัวเองและ จำกัด อัตราอื่น ๆ MIT WAPP เป็นลิขสิทธิ์ (c) 2017-2022 D. Richard Hipp และมีการแจกจ่ายภายใต้ใบอนุญาต BSD ที่เรียบง่าย โดยปริยายคือลิขสิทธิ์ (c) 2015-2020 Yegor Bugayenko และมีการแจกจ่ายภายใต้ใบอนุญาต MIT