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

OSCHINA-MIRROR/iboxdb-ftserver

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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 )

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

Введение

Сервер поисковой системы с поддержкой многоязычности и полнотекстовым поиском, оригинальная разработка на Java. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
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