Демо : sist2.simon987.net
URL сообщества: Discord
sist2 (Простой инструмент инкрементного поиска)
Внимание: sist2 находится на ранней стадии разработки.
* См. поддержку формата.
** См. Архивные файлы.
*** См. OCR
**** См. Распознавание именованного объекта.
version : " 3 "
services :
elasticsearch :
image : elasticsearch:7.17.9
restart : unless-stopped
volumes :
# This directory must have 1000:1000 permissions (or update PUID & PGID below)
- /data/sist2-es-data/:/usr/share/elasticsearch/data
environment :
- " discovery.type=single-node "
- " ES_JAVA_OPTS=-Xms2g -Xmx2g "
- " PUID=1000 "
- " PGID=1000 "
sist2-admin :
image : simon987/sist2:3.4.2-x64-linux
restart : unless-stopped
volumes :
- /data/sist2-admin-data/:/sist2-admin/
- /:/host
ports :
- 4090:4090
# NOTE: Don't expose this port publicly!
- 8080:8080
working_dir : /root/sist2-admin/
entrypoint : python3
command :
- /root/sist2-admin/sist2_admin/app.py
Перейдите по адресу http://localhost:8080/, чтобы настроить sist2-admin.
Выберите серверную часть поиска (см. сравнение):
docker run -d -p 9200:9200 -e " discovery.type=single-node " elasticsearch:7.17.9
Загрузите последнюю версию sist2. Выберите файл, соответствующий архитектуре вашего процессора, и отметьте двоичный файл как исполняемый с помощью chmod +x
.
См. руководство по использованию для использования командной строки.
Пример использования:
sist2 scan ~/Documents --output ./documents.sist2
sist2 index --es-url http://localhost:9200 ./documents.sist2
sist2 sqlite-index --search-index ./search.sist2 ./documents.sist2
sist2 web ./documents.sist2
sist2 web --search-index ./search.sist2 ./documents.sist2
Тип файла | Библиотека | Содержание | Миниатюра | Метаданные |
---|---|---|---|---|
pdf, xps, fb2, epub | МуПДФ | текст+OCR | да | автор, название |
КБЗ, КБЗ | libscan | - | да | - |
audio/* | ffmpeg | - | да | ID3-теги |
video/* | ffmpeg | - | да | название, комментарий, исполнитель |
image/* | ffmpeg | окр | да | Общие теги EXIF, теги GPS |
raw, rw2, dng, cr2, crw, dcr, k25, kdc, mrw, pef, xf3, arw, sr2, srf, erf | LibRaw | нет | да | Общие теги EXIF, теги GPS |
ttf, ttc, cff, woff, fnt, otf | Свободный тип2 | - | да, bmp | Имя и стиль |
text/plain | libscan | да | нет | - |
HTML, XML | libscan | да | нет | - |
tar, zip, rar, 7z, ар... | Лиархив | да* | - | нет |
docx, xlsx, pptx | libscan | да | если встроен | создатель, изменено_по, название |
документ (MS Word 97-2003) | антислово | да | нет | автор, название |
Моби, azw, azw3 | либмоби | да | да | автор, название |
впд (WordPerfect) | libwpd | да | нет | запланировано |
json, jsonl, ndjson | libscan | да | - | - |
* См. Архивные файлы .
sist2 будет сканировать файлы, хранящиеся в архивах (zip, tar, 7z...), как если бы они находились непосредственно в файловой системе. Также поддерживается рекурсивное (архивы внутри архивов) сканирование.
Ограничения :
.gif
, .mp4
с фрагментированными метаданными и т. д.), ограничена (см. параметр --mem-buffer
). Вы можете включить поддержку оптического распознавания символов для электронных книг (pdf, xps, fb2, epub) или типов файлов изображений с помощью параметра --ocr-lang
в сочетании с --ocr-images
и/или --ocr-ebooks
. Загрузите файлы языковых данных с помощью менеджера пакетов ( apt install tesseract-ocr-eng
) или напрямую с Github.
Образ simon987/sist2
поставляется с предустановленными распространенными языками (hin, jpn, eng, fra, rus, spa, chi_sim, deu, pol).
Вы можете использовать разделитель +
, чтобы указать несколько языков. Имя языка должно совпадать с именем файла *.traineddata
установленного в вашей системе (используйте chi_sim
вместо chi-sim
).
Примеры:
sist2 scan --ocr-ebooks --ocr-lang jpn ~ /Books/Manga/
sist2 scan --ocr-images --ocr-lang eng ~ /Images/Screenshots/
sist2 scan --ocr-ebooks --ocr-images --ocr-lang eng+chi_sim ~ /Chinese-Bilingual/
sist2 v3.0.7+ поддерживает механизм поиска SQLite. Серверная часть поиска SQLite имеет меньше функций и в целом сопоставимую производительность запросов для индексов среднего размера, но она использует гораздо меньше памяти и ее проще настроить.
SQLite | Эластичный поиск | |
---|---|---|
Требуется отдельная установка поисковой системы. | ✓ | |
Объем памяти | ~20 МБ | >500 МБ |
Синтаксис запроса | fts5 | строка_запроса |
Нечеткий поиск | ✓ | |
Обновление дерева типов мультимедиа в режиме реального времени | ✓ | |
Добавление тегов вручную | ✓ | ✓ |
Пользовательские сценарии | ✓ | ✓ |
Разбивка по типам медиа для результатов поиска | ✓ | |
Поиск вложений | ✓ О(п) | ✓ О(логин) |
sist2 v3.0.4+ поддерживает распознавание именованных объектов (NER). Просто добавьте URL-адрес поддерживаемого репозитория в раздел Конфигурация > Параметры машинного обучения > Репозитории моделей , чтобы включить его.
Обработка текста осуществляется в вашем браузере, никакие данные не передаются сторонним службам. Дополнительную информацию см. в simon987/sist2-ner-models.
URL-адрес | Сопровождающий | Цель |
---|---|---|
simon987/sist2-ner-модели | Саймон987 | Общий |
Вы можете скомпилировать sist2 самостоятельно, если не хотите использовать предварительно скомпилированные двоичные файлы.
git clone --recursive https://github.com/simon987/sist2/
cd sist2
docker build . -t my-sist2-image
# Copy sist2 executable from docker image
docker run --rm --entrypoint cat my-sist2-image /root/sist2 > sist2-x64-linux
Установите зависимости времени компиляции
apt install gcc g++ python3 yasm ragel automake autotools-dev wget libtool libssl-dev curl zip unzip tar xorg-dev libglu1-mesa-dev libxcursor-dev libxml2-dev libxinerama-dev gettext nasm git nodejs
Установите vcpkg, используя мою вилку: https://github.com/simon987/vcpkg
Установите зависимости vcpkg
vcpkg install openblas curl[core,openssl] sqlite3[core,fts5,json1] cpp-jwt pcre cjson brotli libarchive[core,bzip2,libxml2,lz4,lzma,lzo] pthread tesseract libxml2 libmupdf[ocr] gtest mongoose libmagic libraw gumbo ffmpeg[core,avcodec,avformat,swscale,swresample,webp,opus,mp3lame,vpx,zlib]
Строить
git clone --recursive https://github.com/simon987/sist2/
(cd sist2-vue ; npm install ; npm run build)
(cd sist2-admin/frontend ; npm install ; npm run build)
cmake -DSIST_DEBUG=off -DCMAKE_TOOLCHAIN_FILE= < VCPKG_ROOT > /scripts/buildsystems/vcpkg.cmake .
make