Démo : sist2.simon987.net
URL de la communauté : Discorde
sist2 (outil de recherche incrémentielle simple)
Attention : sist2 est en début de développement
* Voir prise en charge des formats
** Voir Fichiers d'archives
*** Voir ROC
**** Voir Reconnaissance d'entité nommée
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
Accédez à http://localhost:8080/ pour configurer sist2-admin.
Choisissez le backend de recherche (voir comparaison) :
docker run -d -p 9200:9200 -e " discovery.type=single-node " elasticsearch:7.17.9
Téléchargez la dernière version de sist2. Sélectionnez le fichier correspondant à votre architecture CPU et marquez le binaire comme exécutable avec chmod +x
.
Voir le guide d'utilisation pour l'utilisation de la ligne de commande.
Exemple d'utilisation :
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
Type de fichier | Bibliothèque | Contenu | Vignette | Métadonnées |
---|---|---|---|---|
pdf, xps, fb2, epub | MuPDF | texte + ocr | Oui | auteur, titre |
CBZ, CBR | libscan | - | Oui | - |
audio/* | ffmpeg | - | Oui | Balises ID3 |
video/* | ffmpeg | - | Oui | titre, commentaire, artiste |
image/* | ffmpeg | ocr | Oui | Balises EXIF courantes, balises GPS |
brut, rw2, dng, cr2, crw, dcr, k25, kdc, mrw, pef, xf3, arw, sr2, srf, erf | LibRaw | Non | Oui | Balises EXIF courantes, balises GPS |
ttf,ttc,cff,woff,fnt,otf | Type libre2 | - | oui, bmp | Nom et style |
text/plain | libscan | Oui | Non | - |
HTML, XML | libscan | Oui | Non | - |
tar, zip, rar, 7z, ar... | Libarchive | Oui* | - | Non |
docx, xlsx, pptx | libscan | Oui | si intégré | créateur, modifié_par, titre |
doc (MS Word 97-2003) | antimot | Oui | Non | auteur, titre |
mobile, azw, azw3 | libmobi | Oui | Oui | auteur, titre |
wpd (WordPerfect) | libwpd | Oui | Non | prévu |
json, jsonl, ndjson | libscan | Oui | - | - |
* Voir Fichiers d'archives
sist2 analysera les fichiers stockés dans les fichiers d'archive (zip, tar, 7z...) comme s'ils étaient directement dans le système de fichiers. L'analyse récursive (archives dans les archives) est également prise en charge.
Limites :
.gif
, .mp4
avec métadonnées fragmentées, etc.) est limitée (voir l'option --mem-buffer
) Vous pouvez activer la prise en charge OCR pour les types de fichiers ebook (pdf, xps, fb2, epub) ou image avec l'option --ocr-lang
en combinaison avec --ocr-images
et/ou --ocr-ebooks
. Téléchargez les fichiers de données de langue avec votre gestionnaire de packages ( apt install tesseract-ocr-eng
) ou directement depuis Github.
L'image simon987/sist2
est livrée avec les langages courants (hin, jpn, eng, fra, rus, spa, chi_sim, deu, pol) préinstallés.
Vous pouvez utiliser le séparateur +
pour spécifier plusieurs langues. Le nom de la langue doit être identique au fichier *.traineddata
installé sur votre système (utilisez chi_sim
plutôt que chi-sim
).
Exemples :
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+ prend en charge le backend de recherche SQLite. Le backend de recherche SQLite a moins de fonctionnalités et des performances de requête généralement comparables pour les index de taille moyenne, mais il utilise beaucoup moins de mémoire et est plus facile à configurer.
SQLite | Recherche élastique | |
---|---|---|
Nécessite l'installation d'un moteur de recherche séparé | ✓ | |
Empreinte mémoire | ~20 Mo | >500 Mo |
Syntaxe de requête | fts5 | chaîne_requête |
Recherche floue | ✓ | |
Mise à jour en temps réel de l'arborescence des types de médias | ✓ | |
Marquage manuel | ✓ | ✓ |
Scripts utilisateur | ✓ | ✓ |
Répartition des types de médias pour les résultats de recherche | ✓ | |
Recherche d'intégrations | ✓ O(n) | ✓ O(logn) |
sist2 v3.0.4+ prend en charge la reconnaissance d'entité nommée (NER). Ajoutez simplement une URL de référentiel prise en charge à Configuration > Options d'apprentissage automatique > Référentiels modèles pour l'activer.
Le traitement du texte s'effectue dans votre navigateur, aucune donnée n'est envoyée à des services tiers. Voir simon987/sist2-ner-models pour plus de détails.
URL | Mainteneur | But |
---|---|---|
simon987/sist2-ner-models | simon987 | Général |
Vous pouvez compiler sist2 vous-même si vous ne souhaitez pas utiliser les binaires précompilés
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
Installer les dépendances au moment de la compilation
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
Installez vcpkg en utilisant mon fork : https://github.com/simon987/vcpkg
Installer les dépendances 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]
Construire
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