<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Norconex Crawler Blog</title>
        <link>https://crawler.norconex.com/blog</link>
        <description>Norconex Crawler Blog</description>
        <lastBuildDate>Sun, 16 Aug 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Norconex Crawler v4 Beta Is Here]]></title>
            <link>https://crawler.norconex.com/blog/crawler-v4-beta</link>
            <guid>https://crawler.norconex.com/blog/crawler-v4-beta</guid>
            <pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A rewritten crawler, a free visual configurator, and documentation generated straight from the code. It's feature-complete and we want you to try to break it.]]></description>
            <content:encoded><![CDATA[<p>Norconex Crawler v4 is feature-complete and ready for a beta release. It is a
rewrite, not a patch on v3 — new configuration model, new connector lineup, a
free visual configurator, and documentation generated straight from the
schema instead of hand-maintained alongside it. We think it holds up. Now we
want a lot of configurations we did not write pointed at it, so tell us where
it doesn't.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-new">What's new<a href="https://crawler.norconex.com/blog/crawler-v4-beta#whats-new" class="hash-link" aria-label="Direct link to What's new" title="Direct link to What's new" translate="no">​</a></h2>
<p><strong>One config, three formats.</strong> XML, YAML, and JSON are equally supported —
pick whichever your team already works in. The same crawler, in two of them:</p>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">YAML</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">JSON</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">id</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> acme</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">website</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">startReferences</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> https</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain">//www.example.com</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">maxDepth</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">5</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">committers</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">class</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> ElasticsearchCommitter</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">indexName</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> web</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">content</span><br></div></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"id"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"acme-website"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"startReferences"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"https://www.example.com"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"maxDepth"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">5</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"committers"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"class"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"ElasticsearchCommitter"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"indexName"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"web-content"</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div></div></div></div>
<p><strong>One handler pipeline.</strong> v3 split content and metadata work across taggers,
transformers, and filters. In v4 those merged: transformers handle both, and
filters became conditions you can combine with <code>allOf</code>, <code>anyOf</code>, and <code>noneOf</code>
inside the same handler list. Fewer concepts to hold in your head, not fewer
capabilities.</p>
<p><strong>Runs across more than one machine.</strong> A new cluster connector layer —
<a class="" href="https://crawler.norconex.com/docs/reference/crawler/HazelcastClusterConnector">Hazelcast</a>,
<a class="" href="https://crawler.norconex.com/docs/reference/crawler/MVStoreClusterConnector">MVStore</a> (the default), or
in-memory — lets a single crawl be worked by several nodes against a shared
queue. Point it at Hazelcast and scale a crawl out horizontally; leave it on
the default and nothing changes.</p>
<p><strong>Broader reach out of the box.</strong> The file system crawler's fetchers were
rebuilt on Java's own NIO2 file system API instead of Apache Commons VFS2,
and the list grew alongside it: S3, Azure Blob, Azure Data Lake Gen2, Google
Cloud Storage, Google Drive, SharePoint and OneDrive via Microsoft 365 Graph,
Box, Egnyte, CMIS repositories, HDFS, SFTP, FTP, SMB, WebDAV, and archive
files. On the web side, <a class="" href="https://crawler.norconex.com/docs/reference/crawler/PlaywrightFetcher">Playwright</a>
joins WebDriver for browser-based crawling, driving real Chromium, Firefox,
and WebKit engines without a separate driver binary to manage.</p>
<p><strong>14 committers, one version number.</strong> Elasticsearch, Solr, OpenText IDOL,
Amazon CloudSearch, Google Cloud Search, Microsoft Azure Search, SQL, Neo4j,
Apache Kafka, plus CSV, JSON, and XML file output — all in the same
repository as the crawler, versioned together. No more chasing a committer
release that lags the core.</p>
<p>That is a partial list. The <a href="https://crawler.norconex.com/blog/crawler-v4-beta#reference-docs-you-can-edit" class="">reference documentation</a>
below is the complete one.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-visual-configurator">The Visual Configurator<a href="https://crawler.norconex.com/blog/crawler-v4-beta#the-visual-configurator" class="hash-link" aria-label="Direct link to The Visual Configurator" title="Direct link to The Visual Configurator" translate="no">​</a></h2>
<p>Alongside the crawler, we built the <a href="https://configurator.norconex.com/" target="_blank" rel="noopener noreferrer" class="">Configurator</a>
— a browser-based tool for building, editing, and validating crawler
configurations without hand-writing a config file. Import an existing
config or start from scratch, edit visually, and export as XML, YAML, or
JSON.</p>
<p>A few things worth knowing about it:</p>
<ul>
<li class=""><strong>It's free.</strong> No account required to use the core editing and export
workflow.</li>
<li class=""><strong>It is not open source.</strong> The crawler is, and stays that way. The
Configurator is a separate, hosted tool Norconex builds and maintains
alongside it.</li>
<li class=""><strong>Nothing you paste leaves your browser.</strong> Conversion and validation run
entirely client-side — which matters, because real configuration files
routinely contain credentials, internal hostnames, and proxy settings.</li>
<li class=""><strong>It understands v3.</strong> Paste in a v3 XML config and the Configurator
detects it automatically, converts it — splitting a multi-crawler v3 file
into one v4 configuration per crawler — and hands back a migration report
listing what changed and what needs a second look.</li>
</ul>
<p>If you're coming from v3, this is the fastest way to see your own
configuration on the other side of the rewrite.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="reference-docs-you-can-edit">Reference docs you can edit<a href="https://crawler.norconex.com/blog/crawler-v4-beta#reference-docs-you-can-edit" class="hash-link" aria-label="Direct link to Reference docs you can edit" title="Direct link to Reference docs you can edit" translate="no">​</a></h2>
<p>Every configurable class in the crawler — every fetcher, committer,
transformer, condition, and the rest — gets a
<a class="" href="https://crawler.norconex.com/docs/reference">reference page</a>. Over 230 of them, covering the crawler
core, the importer, and every committer.</p>
<p>Each page is two things merged at build time. The schema generates the
structure: every property a class accepts, its type, and how it's validated,
pulled straight from the crawler's own configuration model — that part
cannot drift, since it either matches the code or the build fails. The
descriptions, the notes on when you'd actually reach for an option, and the
worked examples are written by hand, as MDX files living in
<a href="https://github.com/Norconex/crawler/tree/main/docs/reference-source" target="_blank" rel="noopener noreferrer" class=""><code>docs/reference-source</code></a>
inside the crawler repository itself, not this website's.</p>
<p>That last part is new with v4: a meaningful share of what you're reading on
this site is now part of the open-source project, versioned and reviewed the
same way the code is. Every reference page carries a real <strong>Edit this page</strong>
link that goes straight to the source file behind it. If a description is
unclear, an example is missing, or something is just wrong, that's a pull
request, not a support ticket — you're welcome to send one.</p>
<p>The <a class="" href="https://crawler.norconex.com/docs/migration">migration guide</a> and the Configurator both link into
these pages directly, so wherever you land, you're one click from the exact
options a class supports right now, and one more click from fixing it if
it's wrong.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="this-is-a-beta--please-try-to-break-it">This is a beta — please try to break it<a href="https://crawler.norconex.com/blog/crawler-v4-beta#this-is-a-beta--please-try-to-break-it" class="hash-link" aria-label="Direct link to This is a beta — please try to break it" title="Direct link to This is a beta — please try to break it" translate="no">​</a></h2>
<p>Beta means what it says: we're not adding features, we're finding out where
this one breaks. That's a different job than v3 has been doing for years in
production, and no amount of internal testing substitutes for configurations
we didn't write ourselves running against sites and file shares we don't
control.</p>
<p>A few ways to help, roughly in order of how much we'd appreciate it:</p>
<ol>
<li class=""><strong>Run a real v3 config through it.</strong> If you're already a v3 user, the
highest-value thing you can do is convert one of your actual
configurations with the <a href="https://configurator.norconex.com/" target="_blank" rel="noopener noreferrer" class="">Configurator</a>
and point it at a copy of your usual source. That's the fastest way for
us to see configuration shapes we didn't anticipate.</li>
<li class=""><strong>Crawl something unusual.</strong> An oddly structured site, a file share with
a directory depth nobody planned for, an authentication flow we haven't
tested — this is exactly the kind of thing a beta is for.</li>
<li class=""><strong>File what you find.</strong> Bugs, confusing behavior, a documentation page
that doesn't match reality — <a href="https://github.com/Norconex/crawler/issues" target="_blank" rel="noopener noreferrer" class="">open an issue</a>
on GitHub and tag it with the <strong>V4</strong> label so it doesn't get lost among
v3 reports. For anything less clear-cut,
<a href="https://github.com/Norconex/crawler/discussions/categories/q-a" target="_blank" rel="noopener noreferrer" class="">start a discussion</a>
instead.</li>
</ol>
<p>We'll be watching both.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="try-it">Try it<a href="https://crawler.norconex.com/blog/crawler-v4-beta#try-it" class="hash-link" aria-label="Direct link to Try it" title="Direct link to Try it" translate="no">​</a></h2>
<ul>
<li class=""><strong><a class="" href="https://crawler.norconex.com/download">Download</a></strong> the ZIP or pull the Docker image — Java 21 is
the only prerequisite, and it's Apache 2.0 either way.</li>
<li class=""><strong><a class="" href="https://crawler.norconex.com/docs/getting-started">Getting Started</a></strong> walks through installation,
Docker, and a first crawl for both the web and file system crawlers.</li>
<li class=""><strong><a class="" href="https://crawler.norconex.com/docs/migration">Migrating from v3?</a></strong> starts with the Configurator's
automatic conversion, then covers everything it can't do for you.</li>
</ul>
<p>Thanks for testing this with us.</p>]]></content:encoded>
            <category>Release</category>
            <category>v4</category>
        </item>
        <item>
            <title><![CDATA[Meet Nexie]]></title>
            <link>https://crawler.norconex.com/blog/meet-nexie</link>
            <guid>https://crawler.norconex.com/blog/meet-nexie</guid>
            <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Version 4 gave us a new crawler, and a new spider to go with it. Where Nexie came from, and a thank-you to Frank, who is still very much on duty.]]></description>
            <content:encoded><![CDATA[<p>Version 4 changed enough of this crawler that the mascot on the front of it no
longer described the thing behind it. So we drew a new one. Meet <strong>Nexie</strong>.</p>
<!-- -->
<p><img decoding="async" loading="lazy" alt="Nexie at the waterline, front legs breaking the surface to reach glowing cubes of data below" src="https://crawler.norconex.com/assets/images/nexie-shoreline-96e1a12874528ef621f3fdb7b2c61b25.webp" width="1536" height="1024" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-name">The name<a href="https://crawler.norconex.com/blog/meet-nexie#the-name" class="hash-link" aria-label="Direct link to The name" title="Direct link to The name" translate="no">​</a></h2>
<p>Nexie comes out of Norco<strong>nex</strong> — the end of the company name, given a spider
to carry it.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-a-dock-spider">Why a dock spider<a href="https://crawler.norconex.com/blog/meet-nexie#why-a-dock-spider" class="hash-link" aria-label="Direct link to Why a dock spider" title="Direct link to Why a dock spider" translate="no">​</a></h2>
<p>If you have spent a summer near a lake in Canada, you have already met her
relatives. Dock spiders — properly <em>Dolomedes</em>, the fishing spiders — are the
big ones that sit on the boards at the end of a dock and disappear the moment
you lean in for a closer look. Norconex is Canadian, so the choice was
somewhat made for us.</p>
<p>Two things make them worth borrowing from.</p>
<p>They walk on water. The surface film does for them what a web does for other
spiders: they rest their legs on it and read the vibrations travelling across
it, and that is how they work out what is out there and what is worth going
after.</p>
<p>And then they go under. Not a toe in the water — all the way under, hunting
aquatic insects, tadpoles and even small fish, carrying a film of trapped air
against their body so they can stay down there and keep working.</p>
<p><img decoding="async" loading="lazy" alt="Nexie deep below the surface, descending through open water after cubes of data" src="https://crawler.norconex.com/assets/images/nexie-deep-4b90961a9d09423876b8bcfb38e63129.webp" width="1024" height="1536" class="img_ev3q"></p>
<p>Cover the surface, feel out what matters, then go deep after it and come back
with something. We did not have to stretch that one very far.</p>
<p>It also happens to describe the two directions a crawl gets pulled in.</p>
<p>Going wide is a scaling problem. A lot of sites, a lot of shares, a great many
documents, and a light touch on each one — you are covering ground, and what
you mostly need is for that to keep working at volume.</p>
<p>Going deep is a completely different problem. One source at a time, with
filtering, parsing, transformation and enrichment shaped around that
particular content and around what one organisation actually needs to get out
of it. No two enterprises want the same things out of the same documents.</p>
<p>Those pull against each other, and it is tempting to build for one of them.
Version 4 is the release where you stop having to choose. The same
configuration model describes either, and a wide crawl and a deep one can sit
side by side in a single file.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="thank-you-frank">Thank you, Frank<a href="https://crawler.norconex.com/blog/meet-nexie#thank-you-frank" class="hash-link" aria-label="Direct link to Thank you, Frank" title="Direct link to Thank you, Frank" translate="no">​</a></h2>
<p>Nexie is not the first spider to represent this project. Her predecessor never
had an official name — the team just called him <strong>Frank</strong>, and it stuck, the
way those things do. He has been on the front of this crawler for a long time.</p>
<div style="display:flex;gap:2.5rem;align-items:center;justify-content:center;flex-wrap:wrap;margin:2rem 0"><figure style="margin:0;flex:1 1 260px;text-align:center"><img src="https://crawler.norconex.com/img/frank-front.svg" alt="Frank, the previous Norconex mascot: a cartoon spider seen head-on, wearing a blue baseball cap with a white magnifying glass on it" style="max-width:100%;height:10rem;object-fit:contain"><figcaption><strong>Frank</strong> — still on duty</figcaption></figure><figure style="margin:0;flex:1 1 260px;text-align:center"><img src="https://crawler.norconex.com/img/nexie-mark-front.svg" alt="Nexie seen head-on: a faceted low-polygon spider in Norconex blue with pale cyan eyes" style="max-width:100%;height:10rem;object-fit:contain"><figcaption><strong>Nexie</strong> — v4 onward</figcaption></figure></div>
<p>This is a thank-you and not a send-off. Frank has not been retired: version 3
is still supported and still running in production in plenty of places, and
Frank is still its face. He has handed over the new stack, not the job.</p>
<p>The two of them are worth a second look side by side. Frank wears a cap with a
magnifying glass on it — the crawler as the thing that goes out and finds what
you asked for. Nexie carries cubes of data with binary streaming out of them —
the crawler as the thing that takes what it found and delivers it somewhere
useful. Eight legs each, both in Norconex blue, a different job description.</p>
<p>Thanks, Frank. Enjoy the shallow end.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-you-will-see-her">Where you will see her<a href="https://crawler.norconex.com/blog/meet-nexie#where-you-will-see-her" class="hash-link" aria-label="Direct link to Where you will see her" title="Direct link to Where you will see her" translate="no">​</a></h2>
<p>Nexie is on the site, in the docs, and on every release from v4 forward. The
artwork itself — and what you are welcome to do with it — lives on the
<a class="" href="https://crawler.norconex.com/brand">Brand</a> page.</p>]]></content:encoded>
            <category>Brand</category>
            <category>v4</category>
        </item>
    </channel>
</rss>