Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
F

fscrawler

> 数据库
Open source

Elasticsearch File System Crawler (FS Crawler)

1.4K stars0 likes0 views
WebsiteGitHub

About

Elasticsearch File System Crawler (FS Crawler)

File System Crawler for Elasticsearch

Welcome to FSCrawler for Elasticsearch

This crawler helps to index binary documents such as PDF, Open Office, MS Office.

Main features:

  • Local file system (or a mounted drive) crawling and index new files, update existing ones and removes old ones.
  • Remote file system over SSH/FTP crawling.
  • REST interface to let you "upload" your binary documents to elasticsearch.

Latest versions

Current versions are:

Elasticsearch FSCrawler Released Docs 6.x, 7.x 2.9 2022-03-08 2.9 7.x, 8.x, 9.x 3.0 2026-08-26 3.0 8.x, 9.x 3.1-SNAPSHOT 3.1-SNAPSHOT

Quick start

Run Elasticsearch with start-local:

# Start Elasticsearch and Kibana
curl -fsSL https://elastic.co/start-local | sh
# Get the generated API key (you will need it for FSCrawler)
source elastic-start-local/.env

Run FSCrawler with Docker:

docker pull dadoonet/fscrawler
docker run -it --rm \
  --add-host=host.docker.internal:host-gateway \
  -v ~/.fscrawler:/root/.fscrawler \
  -v $(pwd)/resumes:/tmp/es:ro \
  -e FSCRAWLER_ELASTICSEARCH_URLS=http://host.docker.internal:9200 \
  -e FSCRAWLER_ELASTICSEARCH_API_KEY="${ES_LOCAL_API_KEY}" \
  -e FS_JAVA_OPTS="-DLOG_LEVEL=debug" \
  dadoonet/fscrawler

Then open Kibana and watch for your documents coming to the fscrawler alias:

FROM fscrawler 
| STATS numDocs = COUNT(*)

Or search for some text:

FROM fscrawler
| WHERE content : "David"

Or count by file.content_type:

FROM fscrawler 
| STATS numDocs = COUNT(*) BY file.content_type

Note:

  • ~/resumes contains the documents you want to index
  • Job settings will be stored in ~/.fscrawler/fscrawler/_settings.yaml

Read the documentation for more details and specifically the tutorial page.

Need help writing your job settings? Copy a ready-made prompt from the LLM assistant guide into ChatGPT, Claude, or your favorite AI assistant.

FSCrawler also publishes an llms.txt index (mirrored in the repo) and clean Markdown versions of every docs page (*.html.md) so agents can skip HTML chrome — see the llms.txt v2 proposal.

Project information

Stats

Version in preparation

To test this SNAPSHOT with Docker, use the snapshot tag. Untagged dadoonet/fscrawler (or :latest) is the last stable release:

docker pull dadoonet/fscrawler:snapshot

For Docker Compose, set FSCRAWLER_VERSION=snapshot in .env. Use snapshot-noocr if you do not need OCR. The ZIP is published as a GitHub pre-release on every push to main.

Latest release

Build & quality

License

Read more about the Apache2 License.

Thanks

Thanks to JetBrains for the IntelliJ IDEA License! The best IDE out there!

Thanks to SonarCloud for the free analysis! You guys rock!

GitHub Issues· 85 open

View all on GitHub
  • #2543

    File not deleted from elasticsearch

    check_for_bugUpdated Sep 10, 2026
  • #2530

    remove_deleted only reconciles the first 10,000 files in a directory + Orphan files

    check_for_bugUpdated Aug 31, 2026
  • #66

    support for child doc types

    feature_requestUpdated Aug 27, 2026
  • #1824

    Add/document Support for OpenSearch

    feature_requestUpdated Aug 27, 2026
  • #794

    Use External API for OCR ie amazon textract or google vision

    feature_requestcomponent:extractorUpdated Aug 7, 2026
  • #2475

    Add an ElasticsearchPasswordProvider

    feature_requestUpdated Jul 23, 2026
  • #2255

    Generate a thumbnail version of the document

    feature_requestUpdated Jul 20, 2026
  • #341

    Submit job settings via REST api

    newUpdated Jul 17, 2026
  • #1258

    Do not extract ALL raw metadata

    feature_requestcomponent:coreUpdated Jul 7, 2026
  • #987

    fscrawler statistics in a monitoring stack

    feature_requestcomponent:restcomponent:monitoringUpdated Mar 13, 2026

Highlights

  • •Local file system (or a mounted drive) crawling and index new files, update existing ones and removes old ones.
  • •Remote file system over SSH/FTP crawling.
  • •REST interface to let you "upload" your binary documents to elasticsearch.
  • •~/resumes contains the documents you want to index
  • •Job settings will be stored in ~/.fscrawler/fscrawler/_settings.yaml

> Tags

Javacrawlerelasticsearchjavatika

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category数据库
PricingOpen source

> Related tools

P
PostgreSQL
功能强大的开源关系型数据库
R
Redis
内存数据结构存储,常用作缓存与队列
M
MySQL
广泛使用的开源关系型数据库