CrawlerConfig
The top-level configuration for a crawler.
Notesβ
The top-level crawler configuration. Controls all aspects of a crawl session including start references, fetchers, filters, depth limits, threading, checksumming, deduplication, importer settings, committers, and cluster configuration.
Usageβ
- YAML
- JSON
- XML
changeDiscovery: CRAWLER_SCAN
cluster:
adminBindAddress: string
adminDisabled: false
adminPort: 0
clustered: false
connector:
class: HazelcastClusterConnector
clusterName: string
configurer:
class: JdbcHazelcastConfigurer
instanceName: string
nodeExpiryTimeout: 0
workerHeartbeatInterval: 0
committers: []
deferredShutdownDuration: 0
documentChecksummer:
class: Md5DocumentChecksummer
combineFieldsAndContent: false
fieldMatcher:
ignoreCase: false
ignoreDiacritic: false
matchEmpty: false
method: BASIC
negateMatches: false
partial: false
pattern: string
replaceAll: false
trim: false
keep: false
onSet: APPEND
toField: string
documentDeduplicate: false
documentFetchSupport: DISABLED
documentFilters: []
eventListeners: []
fetchers: []
fetchersMaxRetries: 0
fetchersRetryDelay: 0
id: string
idleTimeout: 0
importer:
handlers: []
maxMemoryInstance: 0
maxMemoryPool: 0
responseProcessors:
- {}
tempDir: string
maxCrawlDuration: 0
maxDepth: 0
maxDocuments: 0
maxQueueBatchSize: 0
maxStreamCachePoolSize: 0
maxStreamCacheSize: 0
metadataChecksummer:
class: LastModifiedMetadataChecksummer
keep: false
onSet: APPEND
toField: string
metadataDeduplicate: false
metadataFetchSupport: DISABLED
metadataFilters: []
minProgressLoggingInterval: 0
numThreads: 0
orphansStrategy: PROCESS
postImportConsumers: []
preImportConsumers: []
referenceFilters: []
spoiledReferenceStrategizer:
class: GenericSpoiledReferenceStrategizer
fallbackStrategy: DELETE
mappings: {}
startReferences:
- string
startReferencesAsync: false
startReferencesFiles:
- string
startReferencesProviders:
- noop: string
stopOnExceptions:
- string
workDir: string
{
"changeDiscovery": "CRAWLER_SCAN",
"cluster": {
"adminBindAddress": "string",
"adminDisabled": false,
"adminPort": 0,
"clustered": false,
"connector": {
"class": "HazelcastClusterConnector",
"clusterName": "string",
"configurer": {
"class": "JdbcHazelcastConfigurer"
},
"instanceName": "string",
"nodeExpiryTimeout": 0,
"workerHeartbeatInterval": 0
}
},
"committers": [],
"deferredShutdownDuration": 0,
"documentChecksummer": {
"class": "Md5DocumentChecksummer",
"combineFieldsAndContent": false,
"fieldMatcher": {
"ignoreCase": false,
"ignoreDiacritic": false,
"matchEmpty": false,
"method": "BASIC",
"negateMatches": false,
"partial": false,
"pattern": "string",
"replaceAll": false,
"trim": false
},
"keep": false,
"onSet": "APPEND",
"toField": "string"
},
"documentDeduplicate": false,
"documentFetchSupport": "DISABLED",
"documentFilters": [],
"eventListeners": [],
"fetchers": [],
"fetchersMaxRetries": 0,
"fetchersRetryDelay": 0,
"id": "string",
"idleTimeout": 0,
"importer": {
"handlers": [],
"maxMemoryInstance": 0,
"maxMemoryPool": 0,
"responseProcessors": [
{}
],
"tempDir": "string"
},
"maxCrawlDuration": 0,
"maxDepth": 0,
"maxDocuments": 0,
"maxQueueBatchSize": 0,
"maxStreamCachePoolSize": 0,
"maxStreamCacheSize": 0,
"metadataChecksummer": {
"class": "LastModifiedMetadataChecksummer",
"keep": false,
"onSet": "APPEND",
"toField": "string"
},
"metadataDeduplicate": false,
"metadataFetchSupport": "DISABLED",
"metadataFilters": [],
"minProgressLoggingInterval": 0,
"numThreads": 0,
"orphansStrategy": "PROCESS",
"postImportConsumers": [],
"preImportConsumers": [],
"referenceFilters": [],
"spoiledReferenceStrategizer": {
"class": "GenericSpoiledReferenceStrategizer",
"fallbackStrategy": "DELETE",
"mappings": {}
},
"startReferences": [
"string"
],
"startReferencesAsync": false,
"startReferencesFiles": [
"string"
],
"startReferencesProviders": [
{
"noop": "string"
}
],
"stopOnExceptions": [
"string"
],
"workDir": "string"
}
<crawler>
<changeDiscovery>CRAWLER_SCAN</changeDiscovery>
<cluster>
<adminBindAddress>string</adminBindAddress>
<adminDisabled>false</adminDisabled>
<adminPort>0</adminPort>
<clustered>false</clustered>
<connector>
<class>HazelcastClusterConnector</class>
<clusterName>string</clusterName>
<configurer/>
<instanceName>string</instanceName>
<nodeExpiryTimeout>0</nodeExpiryTimeout>
<workerHeartbeatInterval>0</workerHeartbeatInterval>
</connector>
</cluster>
<committers>
<committer/>
</committers>
<deferredShutdownDuration>0</deferredShutdownDuration>
<documentChecksummer>
<class>Md5DocumentChecksummer</class>
<combineFieldsAndContent>false</combineFieldsAndContent>
<fieldMatcher/>
<keep>false</keep>
<onSet>APPEND</onSet>
<toField>string</toField>
</documentChecksummer>
<documentDeduplicate>false</documentDeduplicate>
<documentFetchSupport>DISABLED</documentFetchSupport>
<documentFilters>
<documentFilter/>
</documentFilters>
<eventListeners>
<eventListener/>
</eventListeners>
<fetchers>
<fetcher/>
</fetchers>
<fetchersMaxRetries>0</fetchersMaxRetries>
<fetchersRetryDelay>0</fetchersRetryDelay>
<id>string</id>
<idleTimeout>0</idleTimeout>
<importer>
<handlers>
<handler/>
</handlers>
<maxMemoryInstance>0</maxMemoryInstance>
<maxMemoryPool>0</maxMemoryPool>
<responseProcessors>
<responseProcessor/>
</responseProcessors>
<tempDir>string</tempDir>
</importer>
<maxCrawlDuration>0</maxCrawlDuration>
<maxDepth>0</maxDepth>
<maxDocuments>0</maxDocuments>
<maxQueueBatchSize>0</maxQueueBatchSize>
<maxStreamCachePoolSize>0</maxStreamCachePoolSize>
<maxStreamCacheSize>0</maxStreamCacheSize>
<metadataChecksummer>
<class>LastModifiedMetadataChecksummer</class>
<keep>false</keep>
<onSet>APPEND</onSet>
<toField>string</toField>
</metadataChecksummer>
<metadataDeduplicate>false</metadataDeduplicate>
<metadataFetchSupport>DISABLED</metadataFetchSupport>
<metadataFilters>
<metadataFilter/>
</metadataFilters>
<minProgressLoggingInterval>0</minProgressLoggingInterval>
<numThreads>0</numThreads>
<orphansStrategy>PROCESS</orphansStrategy>
<postImportConsumers>
<postImportConsumer/>
</postImportConsumers>
<preImportConsumers>
<preImportConsumer/>
</preImportConsumers>
<referenceFilters>
<referenceFilter/>
</referenceFilters>
<spoiledReferenceStrategizer>
<class>GenericSpoiledReferenceStrategizer</class>
<fallbackStrategy>DELETE</fallbackStrategy>
<mappings/>
</spoiledReferenceStrategizer>
<startReferences>
<ref>string</ref>
</startReferences>
<startReferencesAsync>false</startReferencesAsync>
<startReferencesFiles>
<file>string</file>
</startReferencesFiles>
<startReferencesProviders>
<provider>
<noop>string</noop>
</provider>
</startReferencesProviders>
<stopOnExceptions>
<stopOnException>string</stopOnException>
</stopOnExceptions>
<workDir>string</workDir>
</crawler>
Propertiesβ
Property Detailsβ
changeDiscoveryβ
Defines how the crawler discovers changes during a run. CRAWLER_SCAN (default) discovers changes by scanning source inventory and can treat missing references as orphan evidence in incremental runs. SOURCE_DELTA expects explicit source-side change/delete signals, so missing references alone are not treated as orphan evidence.
Allowed Valuesβ
CRAWLER_SCANSOURCE_DELTA
clusterβ
Configuration for the crawler cluster. Controls how the crawler runs across one or more nodes, including distribution of work and inter-node communication.
committersβ
One or more Committers responsible for sending crawled documents to their final storage destinations (e.g., search engines, databases). Documents that pass all filters and processing steps are forwarded to each configured Committer.
deferredShutdownDurationβ
Amount of time to defer the crawler shutdown after it finishes executing. Useful for giving external processes with polling intervals enough time to capture the latest crawler state before it shuts down. Default is zero (no delay).
documentChecksummerβ
Generates a checksum from a document's content to detect whether the document has changed since the last crawl. When combined with documentDeduplicate, duplicate documents within a session are also rejected. Default is MD5-based.
documentDeduplicateβ
Whether to enable deduplication based on document checksum. Requires a documentChecksummer to be configured. When enabled, any document with the same checksum as a previously processed document in the same crawl session is rejected. Not recommended unless document checksums are reliably unique for your content.
documentFetchSupportβ
Controls whether the crawler performs a full document fetch (e.g., HTTP GET). Can be DISABLED, OPTIONAL (attempts but ignores failure), or REQUIRED (rejects the document on failure). Default is REQUIRED.
Allowed Valuesβ
DISABLEDOPTIONALREQUIRED
documentFiltersβ
Filters applied to documents after their full content has been downloaded. Documents that do not pass the filters are rejected and not sent to the Importer or Committers.
eventListenersβ
One or more event listeners that react to crawler lifecycle events (e.g., document fetched, crawl started, crawl completed). Useful for custom monitoring, alerting, or triggering side effects.
fetchersβ
One or more Fetchers responsible for obtaining documents and their metadata from the crawl source. At least one fetcher is required. If multiple fetchers are configured, they are tried in order.
fetchersMaxRetriesβ
Maximum number of times a Fetcher will re-attempt fetching a resource upon failure. Default is zero (no retries).
fetchersRetryDelayβ
How long to wait before a failing Fetcher re-attempts fetching a resource, in milliseconds. Default is zero (no delay).
idβ
A unique identifier for this crawler. Used to distinguish crawlers within the same crawl session and in generated file names and logs. It is important for this value to be unique among all crawlers in the same session.
idleTimeoutβ
Maximum time to wait before shutting down an idle crawler (one whose queue is empty and has no active processing). Unlike deferredShutdownDuration, new queue additions can resume processing. Useful when an external process can add references to the queue dynamically. Default is zero (does not wait).
importerβ
Configuration for the Norconex Importer module, which handles document content parsing, metadata extraction, and transformation before documents are sent to Committers.
maxCrawlDurationβ
Maximum total duration a crawler is allowed to run. Once this limit is reached, the crawler stops processing new documents. Zero or a negative value means unlimited. Default is zero (unlimited).
maxDepthβ
Maximum depth the crawler should explore from its start references. The definition of depth is crawler-specific (e.g., directory levels for file system crawlers, click distance from start URL for web crawlers). Default is -1 (unlimited).
maxDocumentsβ
Maximum number of documents processed in a single crawler run before the crawler stops. If the queue still contains documents when this limit is reached, the crawl session is paused, not completed, and the next run resumes the same session.
maxQueueBatchSizeβ
Maximum number of references a crawler node reads at once from the queue to process locally. Adjusting this value can affect throughput in clustered deployments. Default is 50.
maxStreamCachePoolSizeβ
Maximum number of bytes used for in-memory caching of all reusable streams combined at any given time. Defaults to 1 GB. File-based caching is used when this limit is reached.
maxStreamCacheSizeβ
Maximum number of bytes used for in-memory caching of a single reusable stream. Defaults to 100 MB. File-based caching is used when this limit is reached for a single stream, or when the pool maximum has been reached.
metadataChecksummerβ
Generates a checksum from a document's metadata to detect whether the metadata has changed since the last crawl. When combined with metadataDeduplicate, duplicate metadata within a session are also rejected. Metadata checksum generation is disabled when not configured.
metadataDeduplicateβ
Whether to enable deduplication based on metadata checksum. Requires a metadataChecksummer to be configured. When enabled, any document with the same metadata checksum as a previously processed document in the same crawl session is rejected. Not recommended unless metadata checksums are reliably unique.
metadataFetchSupportβ
Controls whether the crawler fetches document metadata separately before (or instead of) fetching the full document. Can be DISABLED, OPTIONAL, or REQUIRED. Default is DISABLED.
Allowed Valuesβ
DISABLEDOPTIONALREQUIRED
metadataFiltersβ
Filters applied to documents based on their metadata, after metadata has been obtained but before the full document is fetched. Documents that do not pass the filters are rejected.
minProgressLoggingIntervalβ
Minimum time to wait between each crawling progress log entry. A value of null or below 1 second disables progress logging. Default is 30 seconds.
numThreadsβ
Maximum number of concurrent threads the crawler uses for processing documents. Default is 2. In clustered deployments, this value applies per node.
orphansStrategyβ
Determines what to do with previously crawled documents that are no longer found during the current crawl (orphans). Typical values are PROCESS, DELETE, or IGNORE.
Allowed Valuesβ
PROCESSDELETEIGNORE
postImportConsumersβ
A list of document consumers invoked after the document has been processed by the importer.
preImportConsumersβ
A list of document consumers invoked before the document is sent to the importer for content extraction and metadata enrichment.
referenceFiltersβ
Filters applied to document references (URLs or file paths) to control which ones are fetched. Documents whose references do not pass the filters are skipped.
spoiledReferenceStrategizerβ
Determines how to handle references that repeatedly fail to be fetched or processed. Configures the strategy for dealing with such "spoiled" references.
startReferencesβ
The initial set of document references (URLs or file paths) from which the crawl begins.
startReferencesAsyncβ
When enabled, start references are provided and consumed asynchronously, allowing the crawl to begin before all start references are available.
startReferencesFilesβ
One or more files containing lists of start references, one reference per line.
startReferencesProvidersβ
A list of pluggable providers that supply the initial references to crawl, used when start references come from a dynamic or external source.
stopOnExceptionsβ
A list of fully qualified exception class names which, when encountered, will stop the crawler.
workDirβ
The directory where working files (temporary data, queues, state) are stored during crawl execution.