Demonstração : sist2.simon987.net
URL da comunidade: Discord
sist2 (ferramenta de pesquisa incremental simples)
Aviso: sist2 está em desenvolvimento inicial
* Veja suporte de formato
** Veja Arquivos arquivados
*** Veja OCR
**** Consulte Reconhecimento de Entidade Nomeada
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
Navegue para http://localhost:8080/ para configurar o sist2-admin.
Escolha o back-end de pesquisa (veja a comparação):
docker run -d -p 9200:9200 -e " discovery.type=single-node " elasticsearch:7.17.9
Baixe a versão mais recente do sist2. Selecione o arquivo correspondente à arquitetura da sua CPU e marque o binário como executável com chmod +x
.
Consulte o guia de uso para uso da linha de comando.
Exemplo de uso:
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
Tipo de arquivo | Biblioteca | Contente | Miniatura | Metadados |
---|---|---|---|---|
pdf,xps,fb2,epub | MuPDF | texto+ocr | sim | autor, título |
cbz,cbr | libscan | - | sim | - |
audio/* | ffmpeg | - | sim | Etiquetas ID3 |
video/* | ffmpeg | - | sim | título, comentário, artista |
image/* | ffmpeg | ocr | sim | Tags EXIF comuns, tags GPS |
cru, rw2, dng, cr2, crw, dcr, k25, kdc, mrw, pef, xf3, arw, sr2, srf, erf | LibRaw | não | sim | Tags EXIF comuns, tags GPS |
ttf,ttc,cff,woff,fnt,otf | Tipo livre2 | - | sim, bmp | Nome e estilo |
text/plain | libscan | sim | não | - |
HTML, XML | libscan | sim | não | - |
alcatrão, zip, rar, 7z, ar... | Biblioteca | sim* | - | não |
docx, xlsx, pptx | libscan | sim | se incorporado | criador, modificado_por, título |
documento (MS Word 97-2003) | antipalavra | sim | não | autor, título |
mobi, azw, azw3 | libmobi | sim | sim | autor, título |
wpd (WordPerfect) | libwpd | sim | não | planejado |
json, jsonl, ndjson | libscan | sim | - | - |
* Veja Arquivos arquivados
O sist2 verificará os arquivos armazenados em arquivos compactados (zip, tar, 7z...) como se estivessem diretamente no sistema de arquivos. A verificação recursiva (arquivos dentro de arquivos) também é suportada.
Limitações :
.gif
, .mp4
com metadados fragmentados etc.) é limitado (consulte a opção --mem-buffer
) Você pode ativar o suporte OCR para ebook (pdf,xps,fb2,epub) ou tipos de arquivo de imagem com a opção --ocr-lang
em combinação com --ocr-images
e/ou --ocr-ebooks
. Baixe os arquivos de dados de idioma com seu gerenciador de pacotes ( apt install tesseract-ocr-eng
) ou diretamente do Github.
A imagem simon987/sist2
vem com idiomas comuns (hin, jpn, eng, fra, rus, spa, chi_sim, deu, pol) pré-instalados.
Você pode usar o separador +
para especificar vários idiomas. O nome do idioma deve ser idêntico ao arquivo *.traineddata
instalado em seu sistema (use chi_sim
em vez de chi-sim
).
Exemplos:
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+ suporta back-end de pesquisa SQLite. O back-end de pesquisa SQLite tem menos recursos e desempenho de consulta geralmente comparável para índices de tamanho médio, mas usa muito menos memória e é mais fácil de configurar.
SQLite | Elasticsearch | |
---|---|---|
Requer instalação separada do mecanismo de pesquisa | ✓ | |
Pegada de memória | ~20MB | >500MB |
Sintaxe de consulta | fts5 | string_de_consulta |
Pesquisa difusa | ✓ | |
Atualização em tempo real da árvore de tipos de mídia | ✓ | |
Marcação manual | ✓ | ✓ |
Scripts de usuário | ✓ | ✓ |
Detalhamento do tipo de mídia para resultados de pesquisa | ✓ | |
Pesquisa de incorporações | ✓ SO(n) | ✓ O(logn) |
sist2 v3.0.4+ suporta reconhecimento de entidade nomeada (NER). Basta adicionar uma URL de repositório compatível em Configuração > Opções de aprendizado de máquina > Repositórios de modelo para habilitá-lo.
O processamento do texto é feito no seu navegador, nenhum dado é enviado a serviços de terceiros. Consulte simon987/sist2-ner-models para obter mais detalhes.
URL | Mantenedor | Propósito |
---|---|---|
simon987/sist2-ner-models | simon987 | Em geral |
Você pode compilar o sist2 sozinho se não quiser usar os binários pré-compilados
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
Instale dependências em tempo de compilação
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
Instale o vcpkg usando meu fork: https://github.com/simon987/vcpkg
Instale dependências 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]
Construir
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