ติดตั้งจาวา 8+
ติดตั้ง Maven 3+
ดาวน์โหลดโครงการนี้
วิ่ง
$ cd FTServer
$ mvn package cargo:run
เปิด http://127.0.0.1:8088/
กด [Ctrl-C] เพื่อหยุดคอนเทนเนอร์
ป้อน URL แบบเต็มเพื่อสร้างดัชนีเพจ จากนั้นค้นหา
เลื่อนหน้าไปข้างหน้าโดยการจัดทำดัชนีหน้าใหม่
[Word1 Word2 Word3] => ข้อความมี Word1 และ Word2 และ Word3
["Word1 Word2 Word3"] => ข้อความมี "Word1 Word2 Word3" โดยรวม
ค้นหา [https] หรือ [http] => ได้เกือบทุกหน้า
ดาวน์โหลด Netbeans
iBoxDB
ความหมาย-UI
เจซุป
ลำดับผลลัพธ์ตามหมายเลข id() ใน คลาส PageText จากมากไปน้อย
เพจมี PageTexts มากมาย หากไม่ต้องการหลาย Texts ให้แก้ไข Html.getDefaultTexts(Page) ส่งคืน PageText เดียวเท่านั้น (ข้อความคำอธิบายหน้าเท่านั้น Config.DescriptionOnly=true )
ใช้เมธอด Page.GetRandomContent() เพื่อให้ Search-Page-Content เปลี่ยนแปลงอยู่เสมอ ไม่ส่งผลต่อลำดับ PageText จริง
ใช้หมายเลข ID เพื่อควบคุมลำดับแทนการโหลดหน้าทั้งหมดลงในหน่วยความจำ
การค้นหา (... สตริงคีย์เวิร์ด, long startId , long count )
startId => ID ใด (id เมื่อคุณสร้าง PageText) เพื่อเริ่มต้น ใช้ (startId=Long.MaxValue) เพื่ออ่านจากด้านบน เรียงลำดับจากมากไปน้อย
count => บันทึกที่จะอ่าน พารามิเตอร์ที่สำคัญ ความเร็วในการค้นหาขึ้นอยู่กับพารามิเตอร์นี้ ไม่ใช่ขนาดของข้อมูล
ตั้งค่า startId เป็นรหัสสุดท้ายจากผลลัพธ์การค้นหาลบด้วยหนึ่ง
startId = search ( "keywords" , startId , count );
nextpage_startId = startId - 1 // this 'minus one' has done inside search()
...
//read next page
search ( "keywords" , nextpage_startId , count )
ส่วนใหญ่ nextpage_startId จะถูกโพสต์จากเบราว์เซอร์ไคลเอนต์เมื่อผู้ใช้มาถึงจุดสิ้นสุดของหน้าเว็บและตั้งค่าเริ่มต้น nextpage_startId=Long.MaxValue ใน javascript ตัวเลขจำนวนมากจะต้องเขียนเป็น String ("'" + nextpage_startId + "'")
เปิด
public Page Html . get ( String url );
ตั้งค่าข้อความเว็บไซต์ส่วนตัวของคุณ
Page page = new Page ();
page . url = url ;
page . title = title ;
page . text = replace ( doc . body (). text ());
page ... = ...
return page ;
การตั้งค่าหน่วยความจำ JVM จาก FTServer/.mvn/jvm.config ค่าเริ่มต้นคือ 4GB
การตั้งค่าแคชแบบอ่านอย่างเดียวดัชนี (Readonly_MaxDBCount) จาก FTServer/src/main/java/ftserver/Config.java
เหตุใด Tracker จึงใช้ทรัพยากรบนพีซีของฉัน
[user@localhost ~ ]$ tracker daemon -k
[user@localhost ~ ]$ rm -rf .cache/tracker/
[user@localhost ~ ]$ cat /proc/sys/fs/file-max
803882
[user@localhost ~ ]$ ulimit -a | grep files
open files (-n) 500000
[user@localhost ~ ]$ ulimit -Hn
500000
[user@localhost ~ ]$ ulimit -Sn
500000
[user@localhost ~ ]$
$ vi /etc/security/limits.conf
* hard nofile 500000
* soft nofile 500000
root hard nofile 500000
root soft nofile 500000
[user@localhost ~ ]$ sudo blockdev --report
//if Readahead(RA) bigger than hardware speed, can set it lower.
//it depends on hardware parameters.
[user@localhost ~ ]$ sudo blockdev --setra 128 /dev/sda
[user@localhost ~ ]$ sudo blockdev --setra 128 /dev/dm-0
[user@localhost ~ ]$ sudo blockdev --setra 128 /dev/dm-1
[user@localhost ~ ]$ lsblk -o NAME,RA
[user@localhost ~ ]$ free -m
[user@localhost ~ ]$ sudo sysctl vm.drop_caches=3
[user@localhost ~ ]$ firewall-cmd --add-port=8088/tcp --permanent
//Java 11 Version
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
//Java 18 Version
export JAVA_HOME=/home/user/Downloads/jdk-18.0.1.1
//Java 21 Version
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-21.0.2.0.13-1.el9.x86_64
$ alternatives --config java
เวอร์ชัน C# ASP.NET Core
FTServer สำหรับ Android พร้อม APK