Demo : sist2.simon987.net
Community-URL: Discord
sist2 (Einfaches inkrementelles Suchwerkzeug)
Warnung: sist2 befindet sich in der frühen Entwicklung
* Siehe Formatunterstützung
** Siehe Archivdateien
*** Siehe OCR
**** Siehe Anerkennung benannter Entitäten
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
Navigieren Sie zu http://localhost:8080/, um sist2-admin zu konfigurieren.
Such-Backend auswählen (siehe Vergleich):
docker run -d -p 9200:9200 -e " discovery.type=single-node " elasticsearch:7.17.9
Laden Sie die neueste Version von sist2 herunter. Wählen Sie die Ihrer CPU-Architektur entsprechende Datei aus und markieren Sie die Binärdatei mit chmod +x
als ausführbar.
Informationen zur Verwendung der Befehlszeile finden Sie im Nutzungshandbuch.
Beispielverwendung:
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
Dateityp | Bibliothek | Inhalt | Miniaturansicht | Metadaten |
---|---|---|---|---|
pdf,xps,fb2,epub | MuPDF | Text+Okr | Ja | Autor, Titel |
cbz,cbr | libscan | - | Ja | - |
audio/* | ffmpeg | - | Ja | ID3-Tags |
video/* | ffmpeg | - | Ja | Titel, Kommentar, Künstler |
image/* | ffmpeg | okr | Ja | Gängige EXIF-Tags, GPS-Tags |
raw, rw2, dng, cr2, crw, dcr, k25, kdc, mrw, pef, xf3, arw, sr2, srf, erf | LibRaw | NEIN | Ja | Gängige EXIF-Tags, GPS-Tags |
ttf,ttc,cff,woff,fnt,otf | Freetype2 | - | ja, bmp | Name und Stil |
text/plain | libscan | Ja | NEIN | - |
html, xml | libscan | Ja | NEIN | - |
tar, zip, rar, 7z, ar ... | Bibliotheksarchiv | Ja* | - | NEIN |
docx, xlsx, pptx | libscan | Ja | wenn eingebettet | Ersteller, Modified_by, Titel |
doc (MS Word 97-2003) | Antiwort | Ja | NEIN | Autor, Titel |
mobi, azw, azw3 | libmobi | Ja | Ja | Autor, Titel |
wpd (WordPerfect) | libwpd | Ja | NEIN | geplant |
json, jsonl, ndjson | libscan | Ja | - | - |
* Siehe Archivdateien
sist2 scannt Dateien, die in Archivdateien (zip, tar, 7z...) gespeichert sind, als ob sie direkt im Dateisystem wären. Rekursive (Archive innerhalb von Archiven) Scans werden ebenfalls unterstützt.
Einschränkungen :
.gif
, .mp4
mit fragmentierten Metadaten usw.), ist begrenzt (siehe Option --mem-buffer
). Sie können die OCR-Unterstützung für E-Book- (pdf, xps, fb2, epub) oder Bilddateitypen mit der Option --ocr-lang
in Kombination mit --ocr-images
und/oder --ocr-ebooks
aktivieren. Laden Sie die Sprachdatendateien mit Ihrem Paketmanager ( apt install tesseract-ocr-eng
) oder direkt von Github herunter.
Auf dem simon987/sist2
Image sind gängige Sprachen (hin, jpn, eng, fra, rus, spa, chi_sim, deu, pol) vorinstalliert.
Sie können das +
-Trennzeichen verwenden, um mehrere Sprachen anzugeben. Der Sprachname muss mit der auf Ihrem System installierten *.traineddata
Datei identisch sein (verwenden Sie chi_sim
anstelle von chi-sim
).
Beispiele:
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+ unterstützt das SQLite-Such-Backend. Das SQLite-Such-Backend verfügt über weniger Funktionen und eine im Allgemeinen vergleichbare Abfrageleistung für mittelgroße Indizes, verbraucht jedoch viel weniger Speicher und ist einfacher einzurichten.
SQLite | Elasticsearch | |
---|---|---|
Erfordert eine separate Suchmaschineninstallation | ✓ | |
Speicherbedarf | ~20 MB | >500 MB |
Abfragesyntax | fts5 | query_string |
Fuzzy-Suche | ✓ | |
Echtzeitaktualisierung des Medientypbaums | ✓ | |
Manuelles Markieren | ✓ | ✓ |
Benutzerskripte | ✓ | ✓ |
Aufschlüsselung nach Medientyp für Suchergebnisse | ✓ | |
Suche nach Einbettungen | ✓ O(n) | ✓ O(logn) |
sist2 v3.0.4+ unterstützt die Erkennung benannter Entitäten (NER). Fügen Sie einfach eine unterstützte Repository-URL zu Konfiguration > Optionen für maschinelles Lernen > Modellrepositorys hinzu, um sie zu aktivieren.
Die Textverarbeitung erfolgt in Ihrem Browser, es werden keine Daten an Dienste Dritter gesendet. Weitere Informationen finden Sie unter simon987/sist2-ner-models.
URL | Betreuer | Zweck |
---|---|---|
simon987/sist2-ner-models | simon987 | Allgemein |
Sie können sist2 selbst kompilieren, wenn Sie die vorkompilierten Binärdateien nicht verwenden möchten
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
Installieren Sie Abhängigkeiten zur Kompilierungszeit
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
Installieren Sie vcpkg mit meinem Fork: https://github.com/simon987/vcpkg
Installieren Sie vcpkg-Abhängigkeiten
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]
Bauen
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