How apache/tika works
Apache Tika detects file types and extracts text and metadata from documents, with Markdown as the documented default output. The principal workflow is a caller or CLI submitting a file, parsing it, recursively extracting embedded resources, and receiving formatted or structured results. Additional documented capabilities include isolated parsing through Tika Pipes, configurable inference engines, and emitting extracted documents to OpenSearch. The graph uses the README and supplied excerpts; major unsampled parser and server internals are represented only where the tree supports their paths.
Main entry points: AutoDetectParser.java Auto-detect parser · RecursiveParserWrapper.java Recursive results · TikaCLI.java Tika CLI · Tika.java Tika API
Components 20
Entry points
Detection and parsing
- Auto-detect parser
tika-core/src/main/java/org/apache/tika/parser/AutoDetectParser.java - Type detection
tika-core/src/main/java/org/apache/tika/detect/DefaultDetector.java - Format parsers
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules - Embedded extraction
tika-core/src/main/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractor.java
Extraction results
- Metadata model
tika-core/src/main/java/org/apache/tika/metadata/Metadata.java - Recursive results
tika-core/src/main/java/org/apache/tika/parser/RecursiveParserWrapper.java - Content handlers
tika-core/src/main/java/org/apache/tika/sax/BasicContentHandlerFactory.java - Markdown or JSON
tika-core/src/main/java/org/apache/tika/sax/FastMarkdownTextRenderer.java
Inference
- Engine configuration
tika-serialization/src/main/java/org/apache/tika/config/loader/EngineLoader.java - Engine registry
tika-core/src/main/java/org/apache/tika/parser/inference/EngineRegistry.java - Embedding engine
tika-parsers/tika-parsers-ml/tika-inference/src/main/java/org/apache/tika/inference/OpenAIEmbeddingEngine.java
Pipes and emitters
- Client process manager
tika-pipes/tika-pipes-core/src/main/java/org/apache/tika/pipes/core/PerClientServerManager.java - Emitter manager
tika-pipes/tika-pipes-core/src/main/java/org/apache/tika/pipes/core/emitter/EmitterManager.java - OpenSearch emitter
tika-pipes/tika-pipes-plugins/tika-pipes-opensearch/src/main/java/org/apache/tika/pipes/emitter/opensearch/OpenSearchClient.java
Other components
- Application caller
- Document input
- Embedding service
- OpenSearch
Connections 19
- Application caller → Tika API: submits file
- Application caller → Tika CLI: invokes
- Tika CLI → Auto-detect parser: parses input
- Tika API → Auto-detect parser: parses input
- Auto-detect parser → Type detection: detects type
- Auto-detect parser → Format parsers: dispatches parsing
- Format parsers → Embedded extraction: extracts resources
- Embedded extraction → Auto-detect parser: parses embedded
- Auto-detect parser → Metadata model: populates metadata
- Auto-detect parser → Content handlers: sends content
- Recursive results → Auto-detect parser: wraps parsing
- Recursive results → Metadata model: collects metadata
- Content handlers → Markdown or JSON: formats content
- Engine configuration → Engine registry: builds registry
- Engine registry → Embedding engine: holds engine
- Embedding engine → Embedding service: requests vectors
- Client process manager → Document input: isolates parsing
- Emitter manager → OpenSearch emitter: provides emitter
- OpenSearch emitter → OpenSearch: indexes documents