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

OSCHINA-MIRROR/iboxdb-ftserver-cs

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 03.06.2025 00:50 4f52b8b

Полный текстовый поиск для сервера CSharp

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

Установка

  1. Установите .NET 6.0

  2. Скачайте этот проект.

  3. Запустите

cd FTServer
dotnet run -c Release
  1. Откройте http://127.0.0.1:5066/

  2. Нажмите [Ctrl+C], чтобы остановить.

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

Переместите страницу вперед, перезапустив индексацию страницы.

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

[Слово1 Слово2 Слово3] => текст содержит Слово1 и Слово2 и Слово3

["Слово1 Слово2 Слово3"] => текст содержит "Слово1 Слово2 Слово3" как единое целое

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

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

Загрузите Visual Studio Code

Зависимости

iBoxDB

AngleSharp

Semantic-UI

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

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

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

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

Используйте номер ID для управления порядком, вместо загрузки всех страниц в память. Или загрузите первые 100 страниц в память, а затем переупорядочите их по предпочтению.#### Метод поиска search (... String keywords, long startId, long count)

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

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

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

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

startId = search("keywords", startId, count);
nextpage_startId = startId - 1; // это 'минус один' выполнено внутри метода search()
...
//читаем следующую страницу
search("keywords", nextpage_startId, count)

в основном, nextpage_startId отправляется от браузера клиента, когда пользователь достигает конца страницы, и устанавливает default 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 = bodyText;
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 ~]$ 


$ vi /etc/security/limits.conf
*         hard    nofile      500000
*         soft    nofile      500000
root      hard    nofile      500000
root      soft    nofile      500000


[user@localhost ~]$ firewall-cmd --add-port=5066/tcp --permanent
```//Остановка индексации файлов ОС, ускорение
[user@localhost ~]$ tracker daemon -k

//Удаление кэша, он содержит медленную базу данных
[user@localhost ~]$ rm -rf .cache/tracker/

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

Перенос из полнотекстового поиска на Java JSP версию


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

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

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