تثبيت جافا 8+
تثبيت مخضرم 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] => واحصل على جميع الصفحات تقريبًا
تحميل نت بينز
iBoxDB
واجهة المستخدم الدلالية
Jsoup
ترتيب النتائج بناءً على رقم id() في الفئة PageText ، بترتيب تنازلي.
تحتوي الصفحة على العديد من نصوص الصفحات. إذا لم تكن بحاجة إلى نصوص متعددة، فقم بتعديل Html.getDefaultTexts(Page) وإرجاع PageText واحد فقط (نص وصف الصفحة فقط، Config.DescriptionOnly=true ).
يتم استخدام طريقة Page.GetRandomContent() للحفاظ على تغير محتوى صفحة البحث دائمًا، ولا يؤثر على ترتيب PageText الحقيقي.
استخدم رقم المعرف للتحكم في الترتيب بدلاً من تحميل جميع الصفحات إلى الذاكرة.
بحث (... كلمات رئيسية متسلسلة، معرف بداية طويل، عدد طويل)
startId => أي معرف (المعرف عند إنشاء PageText) للبدء، استخدم (startId=Long.MaxValue) للقراءة من الأعلى، بترتيب تنازلي
count => السجلات المراد قراءتها، معلمة مهمة ، تعتمد سرعة البحث على هذه المعلمة، وليس حجم البيانات.
قم بتعيين معرف البداية باعتباره المعرف الأخير من نتائج البحث ناقص واحد
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، في جافا سكريبت، يجب كتابة العدد الكبير كسلسلة ("'" + 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، الافتراضي هو 4 جيجابايت.
إعداد ذاكرة التخزين المؤقت للقراءة فقط للفهرس (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
FTServer لنظام Android مع APK