1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/iboxdb-ftserver

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 5.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 24.11.2024 14:56 e8bf27f

Full Text Search Engine Server for Java

Руководство пользователя

Настройка

  1. Установите Java 11 (https://jdk.java.net/).
  2. Установите Maven 3 (https://maven.apache.org/).
  3. Скачайте этот проект.
  4. Запустите:
$ cd FTServer
$ mvn package cargo:run
  1. Откройте http://127.0.0.1:8088/.
  2. Нажмите Ctrl-C, чтобы остановить контейнер.

Введите полный URL для индексации страницы, затем выполните поиск. Переходите на следующую страницу, повторно индексируя страницу.

Формат поиска

[Слово1 Слово2 Слово3] — текст содержит Слово1, Слово2 и Слово3.

["Слово1 Слово2 Слово3"] — текст содержит "Слово1 Слово2 Слово3" целиком.

Поиск [https] или [http] — получить почти все страницы.

Руководство разработчика

Скачайте Netbeans (https://netbeans.apache.org/).

Зависимости

iBoxDB (http://www.iboxdb.com). Semantic-UI (http://semantic-ui.com/). Jsoup (http://jsoup.org/).

Порядок результатов

Порядок результатов основан на числе id() в классе PageText, в порядке убывания.

Страница имеет много PageTexts. Если не нужно несколько текстов, измените Html.getDefaultTexts(Page), вернув только один PageText.

Метод Page.GetRandomContent() используется для того, чтобы содержимое поисковой страницы всегда менялось, не влияя на реальный порядок PageText.

Используйте номер ID для управления порядком вместо загрузки всех страниц в память. Или загрузите первые 100 страниц в память, а затем переупорядочьте их по предпочтению.

Метод поиска

Поиск (... Строковые ключевые слова, длинный startId, длинный count).

startId — с какого ID (ID при создании PageText) начать, используйте (startId=Long.MaxValue), чтобы читать сверху, в порядке убывания.

count — записи для чтения, важный параметр, скорость поиска зависит от этого параметра, а не от размера данных.

Следующая страница

Установите startId как последний идентификатор из результатов поиска минус один.

startId = search( "keywords", startId, count);
nextpage_startId = startId - 1 // это «минус один» сделано внутри search()
...
//читаем следующую страницу
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;

Увеличьте максимальное количество открытых файлов

[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 ~]$ tracker daemon -k

//Удалите кэш, у него медленная БД внутри
[user@localhost ~]$ rm -rf .cache/tracker/

Остановите индексацию файлов операционной системой.

Установите File Readahead(RA) ниже

[user@localhost ~]$ sudo blockdev --report
//если Readahead(RA) больше скорости оборудования, можно установить его ниже.
//это зависит от параметров оборудования.
[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

Установите File Readahead (RA) ниже.

Добавьте порт брандмауэра для удалённого доступа

[user@localhost ~]$ firewall-cmd --add-port=8088/tcp --permanent

Добавьте порт брандмауэра.

Задайте версию Java

//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.

Дополнительно

C# ASP.NET Core Version (https://github.com/iboxdb/ftserver-cs). FTServer для Android с APK (https://sourceforge.net/p/ftserver-android/code/).

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/iboxdb-ftserver.git
git@api.gitlife.ru:oschina-mirror/iboxdb-ftserver.git
oschina-mirror
iboxdb-ftserver
iboxdb-ftserver
master