デモ: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 リリースをダウンロードします。 CPU アーキテクチャに対応するファイルを選択し、 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 | MuPDF | テキスト+ocr | はい | 著者、タイトル |
cbz、cbr | リブスキャン | - | はい | - |
audio/* | ffmpeg | - | はい | ID3タグ |
video/* | ffmpeg | - | はい | タイトル、コメント、アーティスト |
image/* | ffmpeg | ocr | はい | 一般的な 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 | リブスキャン | はい | いいえ | - |
html、xml | リブスキャン | はい | いいえ | - |
tar、zip、rar、7z、ar ... | ライブラリアーカイブ | はい* | - | いいえ |
docx、xlsx、pptx | リブスキャン | はい | 埋め込まれている場合 | 作成者、変更者、タイトル |
ドキュメント (MS Word 97-2003) | アンチワード | はい | いいえ | 著者、タイトル |
モビ、azw、azw3 | リブモビ | はい | はい | 著者、タイトル |
wpd (ワードパーフェクト) | libwpd | はい | いいえ | 計画された |
json、jsonl、ndjson | リブスキャン | はい | - | - |
*アーカイブ ファイルを参照
sist2 は、アーカイブ ファイル (zip、tar、7z など) に保存されているファイルを、ファイル システムに直接存在するかのようにスキャンします。再帰的 (アーカイブ内のアーカイブ) スキャンもサポートされています。
制限事項:
.gif
、 .mp4
など) の解析のサポートは制限されています ( --mem-buffer
オプションを参照) --ocr-lang
オプションと--ocr-images
および/または--ocr-ebooks
を組み合わせて、電子ブック (pdf、xps、fb2、epub) または画像ファイル タイプの OCR サポートを有効にできます。言語データ ファイルをパッケージ マネージャー ( 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 | エラスティックサーチ | |
---|---|---|
別途検索エンジンのインストールが必要 | ✓ | |
メモリ使用量 | ~20MB | >500MB |
クエリ構文 | フィート5 | クエリ文字列 |
あいまい検索 | ✓ | |
メディア タイプ ツリーのリアルタイム更新 | ✓ | |
手動タグ付け | ✓ | ✓ |
ユーザースクリプト | ✓ | ✓ |
検索結果のメディア タイプの内訳 | ✓ | |
埋め込み検索 | ✓ O(n) | ✓ O(ログ) |
sist2 v3.0.4+ は固有表現認識 (NER) をサポートします。これを有効にするには、サポートされているリポジトリ URL を[構成] > [機械学習オプション] > [モデル リポジトリ]に追加するだけです。
テキスト処理はブラウザ内で行われ、データはサードパーティのサービスに送信されません。詳細については、simon987/sist2-ner-models を参照してください。
URL | メンテナー | 目的 |
---|---|---|
simon987/sist2-ner-models | サイモン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