Установить Яву 8+
Установить Мавен 3+
Загрузите этот проект.
Бегать
$ cd FTServer
$ mvn package cargo:run
Открыть http://127.0.0.1:8088/
Нажмите [Ctrl-C], чтобы остановить контейнер.
Введите полный URL-адрес, чтобы проиндексировать страницу, а затем выполните поиск.
Переместить страницу вперед, переиндексировав страницу.
[Слово1 Слово2 Слово3] => в тексте есть Слово1 , Слово2 и Слово3
["Слово1 Слово2 Слово3"] => текст целиком содержит "Слово1 Слово2 Слово3"
Искать [https] или [http] => получить почти все страницы
Скачать Netbeans
iBoxDB
Семантический интерфейс
Джсуп
Порядок результатов основан на номере id() в классе PageText в порядке убывания.
Страница имеет множество PageTexts. если не требуется несколько текстов, измените Html.getDefaultTexts(Page) , возвращает только один PageText (только текст описания страницы, Config.DescriptionOnly=true ).
метод Page.GetRandomContent() используется для постоянного изменения содержимого страницы поиска и не влияет на реальный порядок PageText.
Используйте идентификационный номер для управления порядком вместо загрузки всех страниц в память.
поиск (... строковые ключевые слова, длинный startId , длинный счетчик )
startId => какой идентификатор (идентификатор при создании 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 большое число нужно записать как строку ("'" + 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.
Почему Трекер потребляет ресурсы моего компьютера?
[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