Migration Tooling September 21, 2026 • 7 min read

Migrating Enterprise Crawler Workloads: Announcing the Apache ManifoldCF Migrator in OpenCrawling

We are thrilled to announce oc-mcf-migrator, a dedicated migration engine, CLI tool, and visual Admin UI wizard designed to transition existing Apache ManifoldCF crawler deployments into OpenCrawling and the Open Ingestion Standard (OIS) with full transparency and zero guesswork.


01. The Motivation: Modernizing Enterprise Ingestion for the AI Era

For over a decade, Apache ManifoldCF (MCF) has served as the open-source cornerstone of enterprise search ingestion. Organizations have invested years crafting intricate crawler configurations, filtering rules, scheduling intervals, and repository connections across countless enterprise systems.

However, the demands of the modern enterprise AI stack have fundamentally shifted. Traditional monolithic crawlers designed solely for keyword search engines struggle to meet the requirements of today's Retrieval-Augmented Generation (RAG) ecosystems. Modern architectures demand decoupled, event-driven microservices, high-throughput asynchronous embedding generation, vector database integrations (such as Qdrant, Vespa, Milvus, Solr 10, and Luxir), and standardized payload contracts defined by the Open Ingestion Standard (OIS).

The oc-mcf-migrator bridges this divide. It provides enterprise teams with a reliable, audited path to modernize their ingestion infrastructure without losing years of accumulated operational rules, connection parameters, and scheduling logic.

✨

First-Class Reactor Module: oc-mcf-migrator is built directly inside the OpenCrawling Maven reactor. A standard mvn install from the project root compiles both the standalone CLI executable (oc-mcf-migrator-cli.jar) and the integrated oc mcf commands inside the OpenCrawling CLI (oc-cli).

02. Core Philosophy: Transparency and Fidelity Over Guesswork

Migration scripts often fail because they attempt to approximate or silently discard unsupported configurations, leading to subtle runtime failures weeks later. oc-mcf-migrator is built upon strict engineering invariants:

03. Architecture & Migration Pipeline

The migration engine operates across a structured, multi-stage pipeline:

Apache ManifoldCF → oc-mcf-migrator → OpenCrawling & OIS
ManifoldCF (Live API / JSON / XML)
→
MigrationEngine (Connector Mappers & Cron Translator)
→
Multi-Format Reports (MD, JSON, HTML)
→
Target: OpenCrawling API & OIS Manifests

04. Three Operational Modes

Whether evaluating an environment, generating declarative GitOps manifests, or performing a live cutover, oc-mcf-migrator provides three purpose-built execution modes:

Mode / Command Primary Function Writes to Live OpenCrawling? Target Output
audit Extracts and evaluates connections, jobs, and schedules. Calculates a compatibility score and flags gaps. Never Audit report (Markdown, JSON, or self-contained HTML)
convert Translates each supported MCF job into an Open Ingestion Standard (ois/v1alpha1) YAML/JSON manifest. Never (File-to-file) Declarative OIS job definition files on disk
import Extracts, maps, and writes supported connections and jobs directly to OpenCrawling via idempotent REST APIs. Always Live OpenCrawling instance (POST /api/connectors, POST /api/jobs)

05. Flexible Ingestion Sources

The migrator can read your existing Apache ManifoldCF topology through three distinct mechanisms:

06. Extensible Connector Mapping & Manual Overrides

The migrator uses a standard Java ServiceLoader registry for connector mappers. The initial release includes native mappers for key enterprise workloads:

💡

Manual Connector Overrides with --map-connector: If you have an existing MCF connection whose connector class does not have an automatic mapper (for instance, an old Solr output), you can manually redirect it to any OpenCrawling connector you have created:
--map-connector "Solr_Output=Qdrant_Vector_Store"
Jobs referencing Solr_Output will treat the pipeline as fully supported and substitute in Qdrant_Vector_Store automatically.

Additionally, CronTranslator automatically translates ManifoldCF's granular schedule records (day-of-week, hour, and minute matrices) into standard 5-part UNIX cron expressions, ensuring your automated ingestion schedules continue running seamlessly in OpenCrawling.

07. Visual Migration Wizard in Admin UI

For teams that prefer a graphical interface, the same migration engine powers an interactive, step-by-step wizard inside the OpenCrawling Admin Dashboard (oc-admin-ui → ManifoldCF Migration):

  1. Configure: Enter your ManifoldCF API endpoint or select an offline snapshot directory.
  2. Plan & Review: Inspect the parsed connections, jobs, compatibility scores, and field-level fidelity notes. Deselect individual jobs or connections with a single click.
  3. Apply: Trigger the idempotent import into the OpenCrawling cluster.
  4. Results: View execution outcomes, download the comprehensive migration report in JSON or HTML, and optionally start migrated crawling jobs immediately.

The wizard is backed by two dedicated endpoints on oc-runtime (POST /api/mcf-migration/plan and POST /api/mcf-migration/apply), ensuring that the web interface and the CLI share the exact same underlying logic, response DTOs, and compatibility checks.

08. CLI Quick Start

You can invoke oc-mcf-migrator using either the standalone JAR or the OpenCrawling CLI (oc mcf):

1. Discover Available Mappers

# Using the standalone JAR
java -jar oc-mcf-migrator-cli.jar list-mappers

# Using the OpenCrawling CLI
oc mcf list-mappers

2. Perform a Dry-Run Audit

java -jar oc-mcf-migrator-cli.jar audit \
  --mcf-url http://localhost:8345/mcf-api-service/json \
  --oc-url http://localhost:8080 \
  --report-format html \
  --report-file ./mcf-migration-report.html

3. Convert Jobs into OIS Declarative YAML Manifests

java -jar oc-mcf-migrator-cli.jar convert \
  --mcf-url http://localhost:8345/mcf-api-service/json \
  --output-dir ./ois-jobs

4. Import Live Workloads Directly into OpenCrawling

java -jar oc-mcf-migrator-cli.jar import \
  --mcf-url http://localhost:8345/mcf-api-service/json \
  --oc-url http://localhost:8080

Ready to Modernize Your Enterprise Crawler Stack?

Read the step-by-step Migration Guide in our documentation, explore the source code on GitHub, or test the interactive simulator.