This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/solr-site.git
The following commit(s) were added to refs/heads/asf-staging by this push:
new 7cb83f187 Commit build products
7cb83f187 is described below
commit 7cb83f1874d3bee75897ddde65fc3d94b39e1656
Author: Build Pelican (action) <[email protected]>
AuthorDate: Wed Sep 16 16:34:47 2026 +0000
Commit build products
---
output/blog.html | 7 +
.../walking-document-graphs-in-apache-solr.html | 460 +++++++++++++++++++++
output/posts.html | 22 +-
output/posts2.html | 26 +-
output/posts3.html | 26 +-
output/posts4.html | 26 +-
output/posts5.html | 26 +-
output/posts6.html | 26 +-
output/posts7.html | 26 +-
output/posts8.html | 26 +-
output/posts9.html | 13 +
11 files changed, 580 insertions(+), 104 deletions(-)
diff --git a/output/blog.html b/output/blog.html
index e422a979a..12b9aa4d6 100644
--- a/output/blog.html
+++ b/output/blog.html
@@ -153,6 +153,13 @@ If you have one you'd like to contribute, or would like to
link out to an extern
<hr/>
+ <h2 id="walking-document-graphs-in-apache-solr">
+ <a href="blogposts/walking-document-graphs-in-apache-solr.html">
+ Walking Document Graphs in Apache Solr
+ </a>
+ </h2>
+ <h5>Published: 4 September 2026</h5>
+ <p><p>Solr can traverse multi-hop relationships already stored in the index
— org charts, nested groups, product taxonomies — with the graph query parser.
One hop is a join; the rest of the tree is a graph walk. Written by Prithvi
S.</p></p>
<h2 id="solr-lucene-migration-correctness">
<a href="blogposts/solr-lucene-migration-correctness.html">
Validating Ranking Correctness During Solr/Lucene Migrations
diff --git a/output/blogposts/walking-document-graphs-in-apache-solr.html
b/output/blogposts/walking-document-graphs-in-apache-solr.html
new file mode 100644
index 000000000..e3e36f70b
--- /dev/null
+++ b/output/blogposts/walking-document-graphs-in-apache-solr.html
@@ -0,0 +1,460 @@
+<!doctype html>
+<html>
+ <head>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE- 2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="viewport" content="minimal-ui, initial-scale=1, maximum-scale=1,
user-scalable=0">
+
+<link rel="stylesheet" href="/theme/css/google-fonts-raleway.css?v=501cdb3d" />
+<link rel="stylesheet" href="/theme/css/google-fonts-kalam.css?v=501cdb3d" />
+<link rel="stylesheet" href="/theme/css/font-awesome.min.css?v=501cdb3d" />
+<link rel="stylesheet"
href="/theme/css/lib/foundation/normalize.css?v=501cdb3d" />
+<link rel="stylesheet"
href="/theme/css/lib/foundation/foundation.min.css?v=501cdb3d"/>
+<link rel="stylesheet"
href="/theme/css/lib/foundation/foundation-icons.css?v=501cdb3d"/>
+<link rel="stylesheet" href="/theme/css/base.css?v=501cdb3d" />
+<meta name="Distribution" content="Global"/>
+<meta name="Robots" content="index,follow"/>
+
+<script src="/theme/javascript/lib/jquery-2.1.1.min.js"></script>
+<script
src="/theme/javascript/lib/foundation/modernizr.js?v=501cdb3d"></script>
+<script
src="/theme/javascript/lib/angularjs/angular.min.js?v=501cdb3d"></script>
+<script
src="/theme/javascript/lib/angularjs/angular-animate.min.js?v=501cdb3d"></script>
+<script
src="/theme/javascript/lib/foundation/foundation.min.js?v=501cdb3d"></script>
+<script
src="/theme/javascript/lib/jquery.smooth-scroll.min.js?v=501cdb3d"></script>
+<script src="/theme/javascript/main.js?v=501cdb3d"></script>
+<script src="https://www.apachecon.com/event-images/snippet.js"></script>
<title>Walking Document Graphs in Apache Solr - Apache Solr</title>
+
+ <meta name="keywords"
+ content="apache, apache lucene, apache solr, solr, lucene,
+ search, information retrieval, spell checking, faceting,
inverted index, open source"/>
+ <meta property="og:type" content="website" />
+ <meta property="og:url"
content="https://solr.apache.org/blogposts/walking-document-graphs-in-apache-solr.html"/>
+ <meta property="og:title" content="Walking Document Graphs in Apache
Solr"/>
+ <meta property="og:description" content="Walking Document Graphs in
Apache Solr¶ Written by Prithvi S. A surprising number of Solr indexes already
contain a graph. An..."/>
+ <meta property="og:image"
content="https://solr.apache.org/theme/images/solr_og_image.png?v=501cdb3d"/>
+ <meta property="og:image:secure_url"
content="https://solr.apache.org/theme/solr/solr_og_image.png?v=501cdb3d"/>
+
+ <link rel="icon" href="/theme/images/favicon.ico" type="image/x-icon">
+ <link rel="shortcut icon" href="/theme/images/favicon.ico"
type="image/x-icon">
+<!-- Matomo -->
+<script>
+ var _paq = window._paq = window._paq || [];
+ /* tracker methods like "setCustomDimension" should be called before
"trackPageView" */
+ _paq.push(["setDoNotTrack", true]);
+ _paq.push(["disableCookies"]);
+ _paq.push(['trackPageView']);
+ _paq.push(['enableLinkTracking']);
+ (function() {
+ var u="https://analytics.apache.org/";
+ _paq.push(['setTrackerUrl', u+'matomo.php']);
+ _paq.push(['setSiteId', '76']);
+ var d=document, g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
+ g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+ })();
+</script>
+<!-- End Matomo Code --> </head>
+
+ <body class="page " x-ng-app="page" x-ng-controller="page.controllers.main">
+<div class="contain-to-grid">
+ <div class="header-section">
+ <nav class="top-bar" data-topbar role="navigation">
+ <ul class="title-area">
+ <li class="name">
+ <a href="/"><img class="logo" src="/theme/images/logo.svg" /></a>
+ </li>
+ <li class="toggle-topbar menu-icon"><a
href="#"><span>Menu</span></a></li>
+ </ul>
+
+ <div class="top-bar-section">
+ <ul class="navigation right">
+ <li>
+ <a href="https://solr.apache.org/guide/solr/latest/">Docs</a>
+ </li>
+ <li class="has-dropdown">
+ <a href="/features.html">Learn</a>
+ <ul class="dropdown">
+ <li><a href="/features.html">Features</a></li>
+ <li><a href="/resources.html">Resources</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="/security.html">Security</a>
+ </li>
+ <li class="has-dropdown">
+ <a href="/community.html">About</a>
+ <ul class="dropdown">
+ <li><a href="/community.html">Community</a></li>
+ <li><a href="/whoweare.html">Project</a></li>
+ <li><a href="/posts.html">News</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="/operator/">Solr Operator</a>
+ </li>
+<!-- TODO Search not working as of feb 2021, disabling
+ <li class="toggle">
+ <a ng-hide="toggled" ng-click="toggle();" href="#">Search</a>
+ <div id="search">
+<form id="quick-search" method="GET"
action="https://sematext.com/opensee/solr" name="searchform">
+ <fieldset>
+ <div ng-show="toggled" class="search-box ng-hide">
+ <input type="search" name="q" placeholder="Search..." accesskey="q"/>
+ <a class="search-button" type="submit"
onclick="this.closest('form').submit();return false;"><img
src="/theme/images/magnifying-glass.png"/></a>
+ </div>
+ </fieldset>
+</form> </div>
+ </li>
+-->
+ <li>
+ <a class="btn" href="/downloads.html">Download</a>
+ </li>
+ </ul>
+ </div>
+ </nav>
+ </div>
+</div>
+
+<div class="header-fill"></div>
+<div class="container">
+ <div class="row">
+<h1 id="walking-document-graphs-in-apache-solr">Walking Document Graphs in
Apache Solr<a class="headerlink" href="#walking-document-graphs-in-apache-solr"
title="Permanent link">¶</a></h1>
+<p>Written by <a href="https://github.com/iprithv">Prithvi S</a>.</p>
+<p>A surprising number of Solr indexes already contain a graph.</p>
+<p>An employee document points at a manager. A group lists the groups it
belongs to. A category records its parent. Those pointers are ordinary string
fields, so they are easy to index and easy to ignore. Then a product question
shows up: <em>all engineers under this VP</em>, <em>every document this nested
group can see</em>, <em>the full subtree of Electronics</em>. A <a
href="https://solr.apache.org/guide/solr/latest/query-guide/join-query-parser.html">join</a>
answers the one-hop vers [...]
+<p>This post is a worked example of that parser. It is not a rewrite of the
reference guide. The goal is to show a realistic schema, the
<code>from</code>/<code>to</code> footgun that catches people coming from
<code>{!join}</code>, and the cases where you should pick a different tool.</p>
+<h2 id="one-hop-is-a-join-the-tree-is-a-graph">One hop is a join. The tree is
a graph.<a class="headerlink" href="#one-hop-is-a-join-the-tree-is-a-graph"
title="Permanent link">¶</a></h2>
+<p>Take a small org chart:</p>
+<div class="codehilite"><pre><span></span><code>alice (CEO)
+├── bob (Engineering Manager)
+│ ├── dave (Engineer)
+│ └── eve (Engineer, on leave)
+└── carol (Design Manager)
+ └── frank (Designer)
+</code></pre></div>
+
+<p>Each person is one Solr document. <code>id</code> is the person.
<code>manager_id_s</code> is that person's pointer to their manager.</p>
+<div class="codehilite"><pre><span></span><code><span class="p">[</span>
+<span class="w"> </span><span class="p">{</span><span
class="nt">"id"</span><span class="p">:</span><span
class="s2">"alice"</span><span class="p">,</span><span class="w">
</span><span class="nt">"name_s"</span><span class="p">:</span><span
class="s2">"Alice"</span><span class="p">,</span><span class="w">
</span><span class="nt">"title_s"</span><span class="p">:</span><span
class="s2">"CEO"</span><span class="p">,</span><span c [...]
+<span class="w"> </span><span class="p">{</span><span
class="nt">"id"</span><span class="p">:</span><span
class="s2">"bob"</span><span class="p">,</span><span class="w">
</span><span class="nt">"name_s"</span><span class="p">:</span><span
class="s2">"Bob"</span><span class="p">,</span><span class="w">
</span><span class="nt">"title_s"</span><span class="p">:</span><span
class="s2">"Engineering Manager"</span><span class="p" [...]
+<span class="w"> </span><span class="p">{</span><span
class="nt">"id"</span><span class="p">:</span><span
class="s2">"carol"</span><span class="p">,</span><span class="w">
</span><span class="nt">"name_s"</span><span class="p">:</span><span
class="s2">"Carol"</span><span class="p">,</span><span class="w">
</span><span class="nt">"title_s"</span><span class="p">:</span><span
class="s2">"Design Manager"</span><span class="p">,</s [...]
+<span class="w"> </span><span class="p">{</span><span
class="nt">"id"</span><span class="p">:</span><span
class="s2">"dave"</span><span class="p">,</span><span class="w">
</span><span class="nt">"name_s"</span><span class="p">:</span><span
class="s2">"Dave"</span><span class="p">,</span><span class="w">
</span><span class="nt">"title_s"</span><span class="p">:</span><span
class="s2">"Engineer"</span><span class="p">,</span><s [...]
+<span class="w"> </span><span class="p">{</span><span
class="nt">"id"</span><span class="p">:</span><span
class="s2">"eve"</span><span class="p">,</span><span class="w">
</span><span class="nt">"name_s"</span><span class="p">:</span><span
class="s2">"Eve"</span><span class="p">,</span><span class="w">
</span><span class="nt">"title_s"</span><span class="p">:</span><span
class="s2">"Engineer"</span><span class="p">,</span><s [...]
+<span class="w"> </span><span class="p">{</span><span
class="nt">"id"</span><span class="p">:</span><span
class="s2">"frank"</span><span class="p">,</span><span class="w">
</span><span class="nt">"name_s"</span><span class="p">:</span><span
class="s2">"Frank"</span><span class="p">,</span><span class="w">
</span><span class="nt">"title_s"</span><span class="p">:</span><span
class="s2">"Designer"</span><span class="p">,</span><s [...]
+<span class="p">]</span>
+</code></pre></div>
+
+<p>A join finds Alice's <strong>direct</strong> reports — Bob and Carol, and
nobody else:</p>
+<div class="codehilite"><pre><span></span><code>q={!join from=id
to=manager_id_s}id:alice
+</code></pre></div>
+
+<p>Join semantics are: run the inner query, collect values from
<code>from</code>, return documents whose <code>to</code> field contains those
values. One hop. Dave and Frank never appear.</p>
+<p>The graph parser keeps walking until the frontier is empty.</p>
+<h2 id="index-the-org-chart">Index the org chart<a class="headerlink"
href="#index-the-org-chart" title="Permanent link">¶</a></h2>
+<p>These examples use Solr 10's <code>_default</code> configset. The
<code>_s</code> suffix gives you indexed string fields, which the graph parser
accepts. Point fields with docValues also work; analyzed text fields do not.</p>
+<div class="codehilite"><pre><span></span><code>docker<span class="w">
</span>run<span class="w"> </span>--name<span class="w"> </span>solr-graph<span
class="w"> </span>-d<span class="w"> </span>-p<span class="w"> </span><span
class="m">8983</span>:8983<span class="w"> </span>solr:10.0.0<span class="w">
</span>solr-precreate<span class="w"> </span>orgchart
+<span class="k">until</span><span class="w"> </span>curl<span class="w">
</span>-sf<span class="w">
</span>http://localhost:8983/solr/orgchart/admin/ping<span class="w">
</span>>/dev/null<span class="p">;</span><span class="w"> </span><span
class="k">do</span><span class="w"> </span>sleep<span class="w"> </span><span
class="m">1</span><span class="p">;</span><span class="w"> </span><span
class="k">done</span>
+
+curl<span class="w"> </span>-H<span class="w"> </span><span
class="s1">'Content-Type: application/json'</span><span class="w">
</span><span class="se">\</span>
+<span class="w"> </span><span
class="s1">'http://localhost:8983/solr/orgchart/update?commit=true'</span><span
class="w"> </span><span class="se">\</span>
+<span class="w"> </span>--data-binary<span class="w"> </span><span
class="s1">'[</span>
+<span class="s1"> {"id":"alice",
"name_s":"Alice", "title_s":"CEO",
"dept_s":"exec",
"status_s":"active"},</span>
+<span class="s1"> {"id":"bob",
"name_s":"Bob", "title_s":"Engineering
Manager", "dept_s":"eng",
"status_s":"active",
"manager_id_s":"alice"},</span>
+<span class="s1"> {"id":"carol",
"name_s":"Carol", "title_s":"Design
Manager", "dept_s":"design",
"status_s":"active",
"manager_id_s":"alice"},</span>
+<span class="s1"> {"id":"dave",
"name_s":"Dave", "title_s":"Engineer",
"dept_s":"eng",
"status_s":"active",
"manager_id_s":"bob"},</span>
+<span class="s1"> {"id":"eve",
"name_s":"Eve", "title_s":"Engineer",
"dept_s":"eng",
"status_s":"leave",
"manager_id_s":"bob"},</span>
+<span class="s1"> {"id":"frank",
"name_s":"Frank", "title_s":"Designer",
"dept_s":"design",
"status_s":"active",
"manager_id_s":"carol"}</span>
+<span class="s1"> ]'</span>
+</code></pre></div>
+
+<h2 id="walk-down-everyone-under-alice">Walk down: everyone under Alice<a
class="headerlink" href="#walk-down-everyone-under-alice" title="Permanent
link">¶</a></h2>
+<div class="codehilite"><pre><span></span><code>curl<span class="w">
</span>-sG<span class="w"> </span><span
class="s1">'http://localhost:8983/solr/orgchart/query'</span><span
class="w"> </span><span class="se">\</span>
+<span class="w"> </span>--data-urlencode<span class="w"> </span><span
class="s1">'fl=id,name_s,title_s,manager_id_s'</span><span class="w">
</span><span class="se">\</span>
+<span class="w"> </span>--data-urlencode<span class="w"> </span><span
class="s1">'sort=id asc'</span><span class="w"> </span><span
class="se">\</span>
+<span class="w"> </span>--data-urlencode<span class="w"> </span><span
class="s1">'q={!graph from=manager_id_s to=id}id:alice'</span>
+</code></pre></div>
+
+<p>That returns all six people. The parser:</p>
+<ol>
+<li>Runs the wrapped query <code>id:alice</code> to get the root set.</li>
+<li>Collects values from <code>to</code> (<code>id</code>) on the current
frontier.</li>
+<li>Finds documents whose <code>from</code> field (<code>manager_id_s</code>)
matches those values.</li>
+<li>Repeats until a hop discovers no new documents.</li>
+</ol>
+<p>So the walk is: Alice → {Bob, Carol} → {Dave, Eve, Frank}. Cycles are
skipped; a document already in the result set is not expanded again.</p>
+<h3 id="from-and-to-are-reversed-from-join"><code>from</code> and
<code>to</code> are reversed from <code>{!join}</code><a class="headerlink"
href="#from-and-to-are-reversed-from-join" title="Permanent
link">¶</a></h3>
+<p>This is the detail that costs people an afternoon.</p>
+<table>
+<thead>
+<tr>
+<th>Parser</th>
+<th>Collect values from</th>
+<th>Match those values on</th>
+<th>Recurses</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>{!join from=X to=Y}</code></td>
+<td><code>X</code></td>
+<td><code>Y</code></td>
+<td>no</td>
+</tr>
+<tr>
+<td><code>{!graph from=X to=Y}</code></td>
+<td><code>Y</code></td>
+<td><code>X</code></td>
+<td>yes</td>
+</tr>
+</tbody>
+</table>
+<p>For the org chart, the join that finds direct reports is <code>{!join
from=id to=manager_id_s}id:alice</code>. The graph walk that finds the whole
subtree is <code>{!graph from=manager_id_s to=id}id:alice</code>. Same two
fields, opposite parameter names. The graph parser's defaults
(<code>from=node_id</code>, <code>to=edge_ids</code>) match a "node identity /
outgoing edges" model, which is why <code>to</code> is the field whose values
you follow.</p>
+<p>If a graph query returns only the root document, swap <code>from</code> and
<code>to</code> before you debug anything else.</p>
+<h2 id="walk-up-daves-management-chain">Walk up: Dave's management chain<a
class="headerlink" href="#walk-up-daves-management-chain" title="Permanent
link">¶</a></h2>
+<p>Follow <code>manager_id_s</code> instead of inverting it:</p>
+<div class="codehilite"><pre><span></span><code>curl<span class="w">
</span>-sG<span class="w"> </span><span
class="s1">'http://localhost:8983/solr/orgchart/query'</span><span
class="w"> </span><span class="se">\</span>
+<span class="w"> </span>--data-urlencode<span class="w"> </span><span
class="s1">'fl=id,name_s,title_s'</span><span class="w"> </span><span
class="se">\</span>
+<span class="w"> </span>--data-urlencode<span class="w"> </span><span
class="s1">'sort=id asc'</span><span class="w"> </span><span
class="se">\</span>
+<span class="w"> </span>--data-urlencode<span class="w"> </span><span
class="s1">'q={!graph from=id to=manager_id_s}id:dave'</span>
+</code></pre></div>
+
+<p>Result: Dave, Bob, Alice. Same parser, opposite edge direction.</p>
+<h2 id="use-it-as-a-filter-not-as-the-scoring-query">Use it as a filter, not
as the scoring query<a class="headerlink"
href="#use-it-as-a-filter-not-as-the-scoring-query" title="Permanent
link">¶</a></h2>
+<p>Graph matches score as a constant <code>1.0</code>. That is the right
behavior for "is this document in the subtree?" and the wrong behavior for
"rank these people by title text." Production queries almost always belong in
<code>fq</code>:</p>
+<div class="codehilite"><pre><span></span><code>curl<span class="w">
</span>-sG<span class="w"> </span><span
class="s1">'http://localhost:8983/solr/orgchart/query'</span><span
class="w"> </span><span class="se">\</span>
+<span class="w"> </span>--data-urlencode<span class="w"> </span><span
class="s1">'fl=id,name_s,title_s,score'</span><span class="w">
</span><span class="se">\</span>
+<span class="w"> </span>--data-urlencode<span class="w"> </span><span
class="s1">'q=title_s:Engineer'</span><span class="w"> </span><span
class="se">\</span>
+<span class="w"> </span>--data-urlencode<span class="w"> </span><span
class="s1">'fq={!graph from=manager_id_s to=id}id:alice'</span>
+</code></pre></div>
+
+<p>Dave and Eve match. Bob does not: his title is "Engineering Manager", and
the filter only restricts the domain. Swap in <code>edismax</code> or a vector
query for <code>q</code> and the graph filter still applies. This is the same
pattern as any other filter query; the graph parser is just a way to
<em>compute</em> that filter from edges in the index.</p>
+<h2 id="parameters-worth-knowing">Parameters worth knowing<a
class="headerlink" href="#parameters-worth-knowing" title="Permanent
link">¶</a></h2>
+<p>The reference guide lists every parameter. These are the ones that change
the org-chart queries above.</p>
+<p><strong><code>maxDepth</code></strong> — hop budget, counting the root as
depth 0. <code>maxDepth=0</code> is only the root. <code>maxDepth=1</code> is
the root plus one hop (Alice, Bob, Carol). Omit it, or leave the default
<code>-1</code>, for an unbounded walk.</p>
+<div class="codehilite"><pre><span></span><code><span class="c1"># Direct
reports of Alice, including Alice</span>
+<span class="nv">q</span><span class="o">={</span>!graph<span class="w">
</span><span class="nv">from</span><span class="o">=</span>manager_id_s<span
class="w"> </span><span class="nv">to</span><span class="o">=</span>id<span
class="w"> </span><span class="nv">maxDepth</span><span class="o">=</span><span
class="m">1</span><span class="o">}</span>id:alice
+
+<span class="c1"># Direct reports only</span>
+<span class="nv">q</span><span class="o">={</span>!graph<span class="w">
</span><span class="nv">from</span><span class="o">=</span>manager_id_s<span
class="w"> </span><span class="nv">to</span><span class="o">=</span>id<span
class="w"> </span><span class="nv">maxDepth</span><span class="o">=</span><span
class="m">1</span><span class="w"> </span><span
class="nv">returnRoot</span><span class="o">=</span>false<span
class="o">}</span>id:alice
+</code></pre></div>
+
+<p><strong><code>returnRoot</code></strong> — default <code>true</code>. Set
<code>false</code> when the root is a container you do not want in the result
(a VP, a parent category, a group). Combined with <code>maxDepth=1</code> this
is the graph analogue of a join: one hop, same two fields, opposite
<code>from</code>/<code>to</code>, root excluded.</p>
+<p><strong><code>traversalFilter</code></strong> — a query applied to
<strong>subsequent</strong> hops, not to the root. To skip people on leave, and
anyone reachable only through them:</p>
+<div class="codehilite"><pre><span></span><code><span class="nv">q</span><span
class="o">={</span>!graph<span class="w"> </span><span
class="nv">from</span><span class="o">=</span>manager_id_s<span class="w">
</span><span class="nv">to</span><span class="o">=</span>id<span class="w">
</span><span class="nv">traversalFilter</span><span class="o">=</span><span
class="s1">'status_s:active'</span><span class="o">}</span>id:alice
+</code></pre></div>
+
+<p>Alice is still returned (the root query is unfiltered). Eve is not. If Bob
were on leave, Dave and Eve would both disappear, because the walk never enters
Bob.</p>
+<p><strong><code>returnOnlyLeaf</code></strong> — keeps documents that have
<strong>no value in the <code>to</code> field</strong>. That is useful when
<code>to</code> is an outgoing-edge field that leaf nodes leave empty. It is
<em>not</em> useful in this org chart: <code>to=id</code> is populated on every
document, so the intersection is empty. Model leaves as "no outgoing edges,"
not as "bottom of the tree."</p>
+<p><strong><code>useAutn</code></strong> — default <code>false</code>.
Compiling an automaton per hop may be faster for some wide frontiers. Leave it
off unless you measure a gain.</p>
+<h2 id="what-the-parser-will-not-do">What the parser will not do<a
class="headerlink" href="#what-the-parser-will-not-do" title="Permanent
link">¶</a></h2>
+<p><strong>It is not distributed.</strong> The graph parser runs against a
single shard. Standalone Solr is fine. SolrCloud is fine only when the
collection has exactly one shard. On a multi-shard collection the coordinator
still fans the query out; each shard walks only its local documents, and the
client gets the union of those incomplete walks. Cross-shard edges are dropped
with no error, which can look plausible and still be wrong. If the data has to
be sharded, use <a href="https:// [...]
+<p><strong>It does not rank along the path.</strong> There is no "closer to
the root scores higher." If you need hop distance, walk with a few
<code>maxDepth</code> queries, or use streaming <code>nodes()</code>, which
emits a <code>level</code> field (root is 0). <code>scoreNodes</code> is a
different tool: TF-IDF co-occurrence for recommendations, not path ranking.</p>
+<p><strong>It is not a substitute for nested documents.</strong> Parent/child
block joins (<code>{!parent}</code> / <code>{!child}</code>) are the right tool
when the relationship is physical adjacency in the index. Graph is the right
tool when the relationship is <em>values in fields</em>, including cycles and
variable depth.</p>
+<p><strong>Wide, deep graphs are search, not a graph database.</strong> Each
hop is another query against <code>from</code>. That is fast on a subtree of
tens or hundreds of thousands of nodes with a selective root. It is the wrong
shape for "materialize the whole connected component of this
80-million-document corpus."</p>
+<h2 id="related-tools-same-edges">Related tools, same edges<a
class="headerlink" href="#related-tools-same-edges" title="Permanent
link">¶</a></h2>
+<p>Solr has four ways to follow field values from one document to another.
They share a mental model and do not share an implementation.</p>
+<table>
+<thead>
+<tr>
+<th>Need</th>
+<th>Tool</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>One hop, possibly across collections (<code>fromIndex</code>,
<code>crossCollection</code>)</td>
+<td><a
href="https://solr.apache.org/guide/solr/latest/query-guide/join-query-parser.html"><code>{!join}</code></a></td>
+</tr>
+<tr>
+<td>Multi-hop filter or query, single shard</td>
+<td><a
href="https://solr.apache.org/guide/solr/latest/query-guide/other-parsers.html#graph-query-parser"><code>{!graph}</code></a></td>
+</tr>
+<tr>
+<td>Multi-hop domain for a JSON facet</td>
+<td><a
href="https://solr.apache.org/guide/solr/latest/query-guide/json-faceting-domain-changes.html#graph-traversal-domain-changes"><code>domain:
{ graph: { ... } }</code></a></td>
+</tr>
+<tr>
+<td>Distributed walk, aggregations, recommendations</td>
+<td><a
href="https://solr.apache.org/guide/solr/latest/query-guide/graph-traversal.html">streaming
<code>nodes()</code></a></td>
+</tr>
+</tbody>
+</table>
+<p>JSON faceting's graph domain takes the same
<code>from</code>/<code>to</code> parameters as the query parser, including the
one-shard limitation. The walk starts from the facet's current domain — here,
the main query <code>id:alice</code> — and expands it before the terms facet
runs:</p>
+<div class="codehilite"><pre><span></span><code>curl<span class="w">
</span>-sS<span class="w">
</span>http://localhost:8983/solr/orgchart/query<span class="w"> </span><span
class="se">\</span>
+<span class="w"> </span>-H<span class="w"> </span><span
class="s1">'Content-Type: application/json'</span><span class="w">
</span><span class="se">\</span>
+<span class="w"> </span>-d<span class="w"> </span><span
class="s1">'{</span>
+<span class="s1"> "query": "id:alice",</span>
+<span class="s1"> "facet": {</span>
+<span class="s1"> "dept": {</span>
+<span class="s1"> "type": "terms",</span>
+<span class="s1"> "field": "dept_s",</span>
+<span class="s1"> "domain": {</span>
+<span class="s1"> "graph": {</span>
+<span class="s1"> "from": "manager_id_s",</span>
+<span class="s1"> "to": "id"</span>
+<span class="s1"> }</span>
+<span class="s1"> }</span>
+<span class="s1"> }</span>
+<span class="s1"> }</span>
+<span class="s1"> }'</span>
+</code></pre></div>
+
+<h2 id="other-graphs-hiding-in-ordinary-schemas">Other graphs hiding in
ordinary schemas<a class="headerlink"
href="#other-graphs-hiding-in-ordinary-schemas" title="Permanent
link">¶</a></h2>
+<p>The org chart is one picture. The same parser covers:</p>
+<ul>
+<li><strong>Nested groups.</strong> User → group → parent group. Walk
<code>member_of</code> to compute the full set of groups a user inherits, then
join that set against an ACL field on documents.</li>
+<li><strong>Product taxonomies.</strong> Category → parent category. Filter a
product search to "this node and every descendant."</li>
+<li><strong>Ticket / issue links.</strong> <code>blocks_ss</code> /
<code>depends_on_ss</code> with <code>maxDepth</code> to keep the walk in a
neighborhood.</li>
+<li><strong>Document series.</strong> <code>replaces_s</code> /
<code>superseded_by_s</code> to find the current version or the full
history.</li>
+</ul>
+<p>If you can write the one-hop join, you can almost certainly write the graph
walk. The extra cost is modeling the edge direction correctly and respecting
the single-shard limit.</p>
+<h2 id="see-also">See also<a class="headerlink" href="#see-also"
title="Permanent link">¶</a></h2>
+<ul>
+<li><a
href="https://solr.apache.org/guide/solr/latest/query-guide/other-parsers.html#graph-query-parser">Graph
Query Parser</a> in the Solr Reference Guide</li>
+<li><a
href="https://solr.apache.org/guide/solr/latest/query-guide/join-query-parser.html">Join
Query Parser</a></li>
+<li><a
href="https://solr.apache.org/guide/solr/latest/query-guide/graph-traversal.html">Graph
Traversal with streaming expressions</a></li>
+<li><a
href="https://solr.apache.org/guide/solr/latest/query-guide/json-faceting-domain-changes.html#graph-traversal-domain-changes">JSON
Faceting: graph domain changes</a></li>
+</ul> </div>
+</div>
+ <footer>
+<div class="row">
+ <div class="small-6 medium-3 columns">
+ <h4>Features</h4>
+ <ul>
+ <li><a href="/features.html">Overview</a></li>
+ <li><a href="/features.html#data-handling">Data Handling</a></li>
+ <li><a href="/features.html#query">Querying</a></li>
+ <li><a href="/features.html#facets">Faceting</a></li>
+ <li><a href="/features.html#discovery">Discovery</a></li>
+ <li><a href="/features.html#plugins">Plugins and Extensions</a></li>
+ <li><a href="/features.html#stats">Statistics and Aggregations</a></li>
+ <li><a href="/features.html#spatial">Spatial</a></li>
+ <li><a href="/features.html#rich-content">Rich Content</a></li>
+ <li><a href="/features.html#performance">Performance</a></li>
+ <li><a href="/features.html#solrcloud">Scaling with SolrCloud</a></li>
+ <li><a href="/features.html#admin-ui">User Interface</a></li>
+ </ul>
+ </div>
+ <div class="small-6 medium-3 columns">
+ <h4>Resources</h4>
+ <ul>
+ <li><a href="/resources.html#tutorials">Tutorial</a></li>
+ <li><a href="https://solr.apache.org/guide/solr/latest/">Docs</a></li>
+ <li><a href="/resources.html#solr-books">Books</a></li>
+ <li><a href="/resources.html#presentations">Presentations</a></li>
+ <li><a href="/resources.html#videos">Videos</a></li>
+ <li><a href="/logos-and-assets.html">Solr Logos and Assets</a></li>
+ <li><a href="/editing-website.html">Editing this Website</a></li>
+ <br/>
+ <li><a href="https://www.apache.org/">Apache Software Foundation</a></li>
+ <li><a
href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
+ <li><a
href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+ <li><a href="https://www.apache.org/security/">Security</a></li>
+ <li><a href="https://www.apache.org/licenses/">License</a></li>
+ </ul>
+ </div>
+ <div class="small-6 medium-3 columns">
+ <h4>Get Started</h4>
+ <ul>
+ <li><a href="/downloads.html">Download</a></li>
+ <li><a href="/guide/solr-tutorial.html">Run Through the Tutorial</a></li>
+ <li><a href="/resources.html">Level Up</a></li>
+ </ul>
+ <br/>
+ <h4>Community</h4>
+ <ul>
+ <li><a href="/community.html#support">Support</a></li>
+ <li><a href="/community.html#mailing-lists-irc">Mailing Lists</a></li>
+ <li><a href="/community.html#issue-tracker">Issues (JIRA)</a></li>
+ <li><a href="/community.html#how-to-contribute">Contribute</a></li>
+ <li><a href="/community.html#version-control">Version control
(GIT)</a></li>
+ </ul>
+ </div>
+ <div class="small-6 medium-3 columns">
+ <h4>Related Projects</h4>
+ <ul>
+ <li><a href="http://lucene.apache.org/">Apache Lucene</a></li>
+ <li><a href="http://zookeeper.apache.org/">Apache Zookeeper</a></li>
+ <li><a href="http://tika.apache.org/">Apache Tika</a></li>
+ <li><a href="http://manifoldcf.apache.org/">Apache ManifoldCF</a></li>
+ <li><a href="http://spark.apache.org/">Apache Spark</a></li>
+ <li><a href="http://nutch.apache.org/">Apache Nutch</a></li>
+ <li><a href="http://zeppelin.apache.org/">Apache Zeppelin</a></li>
+ <li><a href="http://opennlp.apache.org/">Apache OpenNLP</a></li>
+ </ul>
+ </div>
+</div>
+<div class="row copyright">
+<div class="large-centered columns">
+ <p>Copyright © 2026 The Apache Software Foundation, Licensed under the
+ <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License,
Version 2.0</a>. <a
href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy
Policy</a><br/>
+ Apache and the Apache logo are trademarks of The Apache Software
Foundation. Apache Lucene,
+ Apache Solr and their respective logos are trademarks of the Apache
Software Foundation.
+ Please see the <a href="https://www.apache.org/foundation/marks/">Apache
Trademark Policy</a> for more information.
+ All non-Apache logos are the trademarks of their respective owners.</p>
+</div></div> </footer>
+
+<script>
+ $(document).foundation();
+</script>
+<!-- TODO: This script is commented out because we do not use slick slider.
+<script>
+ $(document).ready(function(){
+ $('.slider').slick({
+ infinite: false,
+ speed: 300,
+ slidesToShow: 6,
+ slidesToScroll: 6,
+ responsive: [
+ {
+ breakpoint: 1024,
+ settings: {
+ slidesToShow: 4,
+ slidesToScroll: 4,
+ infinite: true
+ }
+ },
+ {
+ breakpoint: 600,
+ settings: {
+ slidesToShow: 3,
+ slidesToScroll: 3
+ }
+ },
+ {
+ breakpoint: 480,
+ settings: {
+ slidesToShow: 2,
+ slidesToScroll: 2
+ }
+ },
+ {
+ breakpoint: 320,
+ settings: {
+ slidesToShow: 1,
+ slidesToScroll: 1
+ }
+ }
+ ],
+ prevArrow: '<i class="fa fa-angle-left fa-2x slider-prev"></i>',
+ nextArrow: '<i class="fa fa-angle-right fa-2x slider-next"></i>'
+ });
+ });
+</script>
+-->
+ </body>
+</html>
\ No newline at end of file
diff --git a/output/posts.html b/output/posts.html
index 715176d70..7009e2c4d 100644
--- a/output/posts.html
+++ b/output/posts.html
@@ -155,6 +155,15 @@
<h1 id="solr-news">Solr<sup>™</sup> News<a class="headerlink"
href="#solr-news" title="Permanent link">¶</a></h1>
+ <h2 id="walking-document-graphs-in-apache-solr" class="post-item-title">
+ <a
href="blogposts/walking-document-graphs-in-apache-solr.html">Walking Document
Graphs in Apache Solr</a>
+ <a class="headerlink" href="#walking-document-graphs-in-apache-solr"
title="Permanent link">¶</a>
+ </h2>
+ <h5>
+ 4 September 2026
+ </h5>
+ <p>Solr can traverse multi-hop relationships already stored in the index
— org charts, nested groups, product taxonomies — with the graph query parser.
One hop is a join; the rest of the tree is a graph walk. Written by Prithvi
S.</p>
+ <hr/>
<h2
id="jwt-authentication-blockunknown-default-allows-unauthenticated-access-contrary-to-documentation"
class="post-item-title">
<a
href="/news.html#jwt-authentication-blockunknown-default-allows-unauthenticated-access-contrary-to-documentation">JWT
Authentication: blockUnknown default allows unauthenticated access contrary to
documentation</a>
<a class="headerlink"
href="#jwt-authentication-blockunknown-default-allows-unauthenticated-access-contrary-to-documentation"
title="Permanent link">¶</a>
@@ -382,19 +391,6 @@
<a
href="/news.html#cve-2024-45216-apache-solr-authentication-bypass-possible-using-a-fake-url-path-ending">Read
full article on news page →</a>
</div>
<hr/>
- <h2
id="cve-2024-45217-apache-solr-configsets-created-during-a-backup-restore-command-are-trusted-implicitly"
class="post-item-title">
- <a
href="/news.html#cve-2024-45217-apache-solr-configsets-created-during-a-backup-restore-command-are-trusted-implicitly">CVE-2024-45217:
Apache Solr: ConfigSets created during a backup restore command are trusted
implicitly</a>
- <a class="headerlink"
href="#cve-2024-45217-apache-solr-configsets-created-during-a-backup-restore-command-are-trusted-implicitly"
title="Permanent link">¶</a>
- </h2>
- <h5>
- <strong>Security:</strong>
- 14 October 2024
- </h5>
- <p>Severity: Moderate Versions Affected: Apache Solr 6.6.0 before 8.11.4
Apache Solr 9.0.0 before 9.7.0 Description: Insecure Default Initialization of
Resource vulnerability in Apache Solr. New ConfigSets that are created via a
Restore command, which copy a configSet from the backup and give …</p>
- <div class="read-more">
- <a
href="/news.html#cve-2024-45217-apache-solr-configsets-created-during-a-backup-restore-command-are-trusted-implicitly">Read
full article on news page →</a>
- </div>
- <hr/>
<div class="pagination">
<span class="pagination-info">
diff --git a/output/posts2.html b/output/posts2.html
index ed00849d5..053165f35 100644
--- a/output/posts2.html
+++ b/output/posts2.html
@@ -155,6 +155,19 @@
<h1 id="solr-news">Solr<sup>™</sup> News<a class="headerlink"
href="#solr-news" title="Permanent link">¶</a></h1>
+ <h2
id="cve-2024-45217-apache-solr-configsets-created-during-a-backup-restore-command-are-trusted-implicitly"
class="post-item-title">
+ <a
href="/news.html#cve-2024-45217-apache-solr-configsets-created-during-a-backup-restore-command-are-trusted-implicitly">CVE-2024-45217:
Apache Solr: ConfigSets created during a backup restore command are trusted
implicitly</a>
+ <a class="headerlink"
href="#cve-2024-45217-apache-solr-configsets-created-during-a-backup-restore-command-are-trusted-implicitly"
title="Permanent link">¶</a>
+ </h2>
+ <h5>
+ <strong>Security:</strong>
+ 14 October 2024
+ </h5>
+ <p>Severity: Moderate Versions Affected: Apache Solr 6.6.0 before 8.11.4
Apache Solr 9.0.0 before 9.7.0 Description: Insecure Default Initialization of
Resource vulnerability in Apache Solr. New ConfigSets that are created via a
Restore command, which copy a configSet from the backup and give …</p>
+ <div class="read-more">
+ <a
href="/news.html#cve-2024-45217-apache-solr-configsets-created-during-a-backup-restore-command-are-trusted-implicitly">Read
full article on news page →</a>
+ </div>
+ <hr/>
<h2 id="community-over-code-na-2024-birds-of-a-feather"
class="post-item-title">
<a
href="blogposts/community-over-code-na-2024-birds-of-a-feather.html">Community
Over Code NA 2024 Apache Lucene/Solr Birds Of A Feather</a>
<a class="headerlink"
href="#community-over-code-na-2024-birds-of-a-feather" title="Permanent
link">¶</a>
@@ -358,19 +371,6 @@
<a
href="/news.html#cve-2023-50291-apache-solr-can-leak-certain-passwords-due-to-system-property-redaction-logic-inconsistencies">Read
full article on news page →</a>
</div>
<hr/>
- <h2
id="cve-2023-50292-apache-solr-schema-designer-blindly-trusts-all-configsets-possibly-leading-to-rce-by-unauthenticated-users"
class="post-item-title">
- <a
href="/news.html#cve-2023-50292-apache-solr-schema-designer-blindly-trusts-all-configsets-possibly-leading-to-rce-by-unauthenticated-users">CVE-2023-50292:
Apache Solr Schema Designer blindly "trusts" all configsets, possibly leading
to RCE by unauthenticated users</a>
- <a class="headerlink"
href="#cve-2023-50292-apache-solr-schema-designer-blindly-trusts-all-configsets-possibly-leading-to-rce-by-unauthenticated-users"
title="Permanent link">¶</a>
- </h2>
- <h5>
- <strong>Security:</strong>
- 8 February 2024
- </h5>
- <p>Severity: Moderate Versions Affected: Apache Solr 6.0.0 through
8.11.2 Apache Solr 9.0.0 before 9.3.0 Description: Incorrect Permission
Assignment for Critical Resource, Improper Control of Dynamically-Managed Code
Resources vulnerability in Apache Solr. This issue affects Apache Solr: from
8.10.0 through 8 …</p>
- <div class="read-more">
- <a
href="/news.html#cve-2023-50292-apache-solr-schema-designer-blindly-trusts-all-configsets-possibly-leading-to-rce-by-unauthenticated-users">Read
full article on news page →</a>
- </div>
- <hr/>
<div class="pagination">
<a href="/posts.html">← Previous</a>
diff --git a/output/posts3.html b/output/posts3.html
index 301fc98fa..1f7c3eba9 100644
--- a/output/posts3.html
+++ b/output/posts3.html
@@ -155,6 +155,19 @@
<h1 id="solr-news">Solr<sup>™</sup> News<a class="headerlink"
href="#solr-news" title="Permanent link">¶</a></h1>
+ <h2
id="cve-2023-50292-apache-solr-schema-designer-blindly-trusts-all-configsets-possibly-leading-to-rce-by-unauthenticated-users"
class="post-item-title">
+ <a
href="/news.html#cve-2023-50292-apache-solr-schema-designer-blindly-trusts-all-configsets-possibly-leading-to-rce-by-unauthenticated-users">CVE-2023-50292:
Apache Solr Schema Designer blindly "trusts" all configsets, possibly leading
to RCE by unauthenticated users</a>
+ <a class="headerlink"
href="#cve-2023-50292-apache-solr-schema-designer-blindly-trusts-all-configsets-possibly-leading-to-rce-by-unauthenticated-users"
title="Permanent link">¶</a>
+ </h2>
+ <h5>
+ <strong>Security:</strong>
+ 8 February 2024
+ </h5>
+ <p>Severity: Moderate Versions Affected: Apache Solr 6.0.0 through
8.11.2 Apache Solr 9.0.0 before 9.3.0 Description: Incorrect Permission
Assignment for Critical Resource, Improper Control of Dynamically-Managed Code
Resources vulnerability in Apache Solr. This issue affects Apache Solr: from
8.10.0 through 8 …</p>
+ <div class="read-more">
+ <a
href="/news.html#cve-2023-50292-apache-solr-schema-designer-blindly-trusts-all-configsets-possibly-leading-to-rce-by-unauthenticated-users">Read
full article on news page →</a>
+ </div>
+ <hr/>
<h2
id="cve-2023-50298-apache-solr-can-expose-zookeeper-credentials-via-streaming-expressions"
class="post-item-title">
<a
href="/news.html#cve-2023-50298-apache-solr-can-expose-zookeeper-credentials-via-streaming-expressions">CVE-2023-50298:
Apache Solr can expose ZooKeeper credentials via Streaming Expressions</a>
<a class="headerlink"
href="#cve-2023-50298-apache-solr-can-expose-zookeeper-credentials-via-streaming-expressions"
title="Permanent link">¶</a>
@@ -402,19 +415,6 @@
<a
href="/news.html#apache-solr-affected-by-apache-log4j-cve-2021-44228">Read full
article on news page →</a>
</div>
<hr/>
- <h2 id="apache-solrtm-8110-available" class="post-item-title">
- <a href="/news.html#apache-solrtm-8110-available">Apache Solr™ 8.11.0
available</a>
- <a class="headerlink" href="#apache-solrtm-8110-available"
title="Permanent link">¶</a>
- </h2>
- <h5>
- <strong>News:</strong>
- 16 November 2021
- </h5>
- <p>The Solr PMC is pleased to announce the release of Apache Solr
8.11.0. Solr is the popular, blazing fast, open source NoSQL search platform
from the Apache Lucene project. Its major features include powerful full-text
search, hit highlighting, faceted search, dynamic clustering, database
integration, rich document handling, and …</p>
- <div class="read-more">
- <a href="/news.html#apache-solrtm-8110-available">Read full article on
news page →</a>
- </div>
- <hr/>
<div class="pagination">
<a href="/posts2.html">← Previous</a>
diff --git a/output/posts4.html b/output/posts4.html
index 8aecd29a9..532fc722b 100644
--- a/output/posts4.html
+++ b/output/posts4.html
@@ -155,6 +155,19 @@
<h1 id="solr-news">Solr<sup>™</sup> News<a class="headerlink"
href="#solr-news" title="Permanent link">¶</a></h1>
+ <h2 id="apache-solrtm-8110-available" class="post-item-title">
+ <a href="/news.html#apache-solrtm-8110-available">Apache Solr™ 8.11.0
available</a>
+ <a class="headerlink" href="#apache-solrtm-8110-available"
title="Permanent link">¶</a>
+ </h2>
+ <h5>
+ <strong>News:</strong>
+ 16 November 2021
+ </h5>
+ <p>The Solr PMC is pleased to announce the release of Apache Solr
8.11.0. Solr is the popular, blazing fast, open source NoSQL search platform
from the Apache Lucene project. Its major features include powerful full-text
search, hit highlighting, faceted search, dynamic clustering, database
integration, rich document handling, and …</p>
+ <div class="read-more">
+ <a href="/news.html#apache-solrtm-8110-available">Read full article on
news page →</a>
+ </div>
+ <hr/>
<h2 id="apache-solrtm-8101-available" class="post-item-title">
<a href="/news.html#apache-solrtm-8101-available">Apache Solr™ 8.10.1
available</a>
<a class="headerlink" href="#apache-solrtm-8101-available"
title="Permanent link">¶</a>
@@ -402,19 +415,6 @@
<a href="/news.html#apache-solrtm-773-available">Read full article on
news page →</a>
</div>
<hr/>
- <h2 id="apache-solrtm-851-available" class="post-item-title">
- <a href="/news.html#apache-solrtm-851-available">Apache Solr™ 8.5.1
available</a>
- <a class="headerlink" href="#apache-solrtm-851-available"
title="Permanent link">¶</a>
- </h2>
- <h5>
- <strong>News:</strong>
- 16 April 2020
- </h5>
- <p>The Lucene PMC is pleased to announce the release of Apache Solr
8.5.1 Solr is the popular, blazing fast, open source NoSQL search platform from
the Apache Lucene project. Its major features include powerful full-text
search, hit highlighting, faceted search and analytics, rich document parsing,
geospatial search, extensive …</p>
- <div class="read-more">
- <a href="/news.html#apache-solrtm-851-available">Read full article on
news page →</a>
- </div>
- <hr/>
<div class="pagination">
<a href="/posts3.html">← Previous</a>
diff --git a/output/posts5.html b/output/posts5.html
index 1d47fd268..1f5259075 100644
--- a/output/posts5.html
+++ b/output/posts5.html
@@ -155,6 +155,19 @@
<h1 id="solr-news">Solr<sup>™</sup> News<a class="headerlink"
href="#solr-news" title="Permanent link">¶</a></h1>
+ <h2 id="apache-solrtm-851-available" class="post-item-title">
+ <a href="/news.html#apache-solrtm-851-available">Apache Solr™ 8.5.1
available</a>
+ <a class="headerlink" href="#apache-solrtm-851-available"
title="Permanent link">¶</a>
+ </h2>
+ <h5>
+ <strong>News:</strong>
+ 16 April 2020
+ </h5>
+ <p>The Lucene PMC is pleased to announce the release of Apache Solr
8.5.1 Solr is the popular, blazing fast, open source NoSQL search platform from
the Apache Lucene project. Its major features include powerful full-text
search, hit highlighting, faceted search and analytics, rich document parsing,
geospatial search, extensive …</p>
+ <div class="read-more">
+ <a href="/news.html#apache-solrtm-851-available">Read full article on
news page →</a>
+ </div>
+ <hr/>
<h2 id="apache-solrtm-850-available" class="post-item-title">
<a href="/news.html#apache-solrtm-850-available">Apache Solr™ 8.5.0
available</a>
<a class="headerlink" href="#apache-solrtm-850-available"
title="Permanent link">¶</a>
@@ -402,19 +415,6 @@
<a href="/news.html#apache-solrtm-771-available">Read full article on
news page →</a>
</div>
<hr/>
- <h2 id="cve-2017-3164-ssrf-issue-in-apache-solr" class="post-item-title">
- <a
href="/news.html#cve-2017-3164-ssrf-issue-in-apache-solr">CVE-2017-3164: SSRF
issue in Apache Solr</a>
- <a class="headerlink" href="#cve-2017-3164-ssrf-issue-in-apache-solr"
title="Permanent link">¶</a>
- </h2>
- <h5>
- <strong>Security:</strong>
- 12 February 2019
- </h5>
- <p>Severity: High Vendor: The Apache Software Foundation Versions
Affected: Apache Solr versions from 1.3 to 7.6.0 Description: The "shards"
parameter does not have a corresponding whitelist mechanism, so it can request
any URL. Mitigation: Upgrade to Apache Solr 7.7.0 or later. Ensure your network
settings …</p>
- <div class="read-more">
- <a href="/news.html#cve-2017-3164-ssrf-issue-in-apache-solr">Read full
article on news page →</a>
- </div>
- <hr/>
<div class="pagination">
<a href="/posts4.html">← Previous</a>
diff --git a/output/posts6.html b/output/posts6.html
index c6140f45b..566749f27 100644
--- a/output/posts6.html
+++ b/output/posts6.html
@@ -155,6 +155,19 @@
<h1 id="solr-news">Solr<sup>™</sup> News<a class="headerlink"
href="#solr-news" title="Permanent link">¶</a></h1>
+ <h2 id="cve-2017-3164-ssrf-issue-in-apache-solr" class="post-item-title">
+ <a
href="/news.html#cve-2017-3164-ssrf-issue-in-apache-solr">CVE-2017-3164: SSRF
issue in Apache Solr</a>
+ <a class="headerlink" href="#cve-2017-3164-ssrf-issue-in-apache-solr"
title="Permanent link">¶</a>
+ </h2>
+ <h5>
+ <strong>Security:</strong>
+ 12 February 2019
+ </h5>
+ <p>Severity: High Vendor: The Apache Software Foundation Versions
Affected: Apache Solr versions from 1.3 to 7.6.0 Description: The "shards"
parameter does not have a corresponding whitelist mechanism, so it can request
any URL. Mitigation: Upgrade to Apache Solr 7.7.0 or later. Ensure your network
settings …</p>
+ <div class="read-more">
+ <a href="/news.html#cve-2017-3164-ssrf-issue-in-apache-solr">Read full
article on news page →</a>
+ </div>
+ <hr/>
<h2 id="apache-solrtm-770-available" class="post-item-title">
<a href="/news.html#apache-solrtm-770-available">Apache Solr™ 7.7.0
available</a>
<a class="headerlink" href="#apache-solrtm-770-available"
title="Permanent link">¶</a>
@@ -402,19 +415,6 @@
<a
href="/news.html#solr-security-please-secure-your-apache-solr-servers-since-a-zero-day-exploit-has-been-reported-on-a-public-mailing-list">Read
full article on news page →</a>
</div>
<hr/>
- <h2 id="apache-solrtm-701-available" class="post-item-title">
- <a href="/news.html#apache-solrtm-701-available">Apache Solr™ 7.0.1
available</a>
- <a class="headerlink" href="#apache-solrtm-701-available"
title="Permanent link">¶</a>
- </h2>
- <h5>
- <strong>News:</strong>
- 6 October 2017
- </h5>
- <p>Solr is the popular, blazing fast, open source NoSQL search platform
from the Apache Lucene project. Its major features include powerful full-text
search, hit highlighting, faceted search and analytics, rich document parsing,
geospatial search, extensive REST APIs as well as parallel SQL. Solr is
enterprise grade, secure and highly scalable …</p>
- <div class="read-more">
- <a href="/news.html#apache-solrtm-701-available">Read full article on
news page →</a>
- </div>
- <hr/>
<div class="pagination">
<a href="/posts5.html">← Previous</a>
diff --git a/output/posts7.html b/output/posts7.html
index e0c04bd44..6f5d3f1c4 100644
--- a/output/posts7.html
+++ b/output/posts7.html
@@ -155,6 +155,19 @@
<h1 id="solr-news">Solr<sup>™</sup> News<a class="headerlink"
href="#solr-news" title="Permanent link">¶</a></h1>
+ <h2 id="apache-solrtm-701-available" class="post-item-title">
+ <a href="/news.html#apache-solrtm-701-available">Apache Solr™ 7.0.1
available</a>
+ <a class="headerlink" href="#apache-solrtm-701-available"
title="Permanent link">¶</a>
+ </h2>
+ <h5>
+ <strong>News:</strong>
+ 6 October 2017
+ </h5>
+ <p>Solr is the popular, blazing fast, open source NoSQL search platform
from the Apache Lucene project. Its major features include powerful full-text
search, hit highlighting, faceted search and analytics, rich document parsing,
geospatial search, extensive REST APIs as well as parallel SQL. Solr is
enterprise grade, secure and highly scalable …</p>
+ <div class="read-more">
+ <a href="/news.html#apache-solrtm-701-available">Read full article on
news page →</a>
+ </div>
+ <hr/>
<h2 id="apache-solr-reference-guide-for-70-available"
class="post-item-title">
<a
href="/news.html#apache-solr-reference-guide-for-70-available">Apache Solr
Reference Guide for 7.0 available</a>
<a class="headerlink"
href="#apache-solr-reference-guide-for-70-available" title="Permanent
link">¶</a>
@@ -402,19 +415,6 @@
<a href="/news.html#apache-solr-553-available">Read full article on
news page →</a>
</div>
<hr/>
- <h2 id="apache-solr-620-available" class="post-item-title">
- <a href="/news.html#apache-solr-620-available">Apache Solr 6.2.0
available</a>
- <a class="headerlink" href="#apache-solr-620-available" title="Permanent
link">¶</a>
- </h2>
- <h5>
- <strong>News:</strong>
- 25 August 2016
- </h5>
- <p>The Lucene PMC is pleased to announce the release of Apache Solr
6.2.0. Solr is the popular, blazing fast, open source NoSQL search platform
from the Apache Lucene project. Its major features include powerful full-text
search, hit highlighting, faceted search and analytics, rich document parsing,
geospatial search, extensive …</p>
- <div class="read-more">
- <a href="/news.html#apache-solr-620-available">Read full article on
news page →</a>
- </div>
- <hr/>
<div class="pagination">
<a href="/posts6.html">← Previous</a>
diff --git a/output/posts8.html b/output/posts8.html
index 52d8441f7..308244709 100644
--- a/output/posts8.html
+++ b/output/posts8.html
@@ -155,6 +155,19 @@
<h1 id="solr-news">Solr<sup>™</sup> News<a class="headerlink"
href="#solr-news" title="Permanent link">¶</a></h1>
+ <h2 id="apache-solr-620-available" class="post-item-title">
+ <a href="/news.html#apache-solr-620-available">Apache Solr 6.2.0
available</a>
+ <a class="headerlink" href="#apache-solr-620-available" title="Permanent
link">¶</a>
+ </h2>
+ <h5>
+ <strong>News:</strong>
+ 25 August 2016
+ </h5>
+ <p>The Lucene PMC is pleased to announce the release of Apache Solr
6.2.0. Solr is the popular, blazing fast, open source NoSQL search platform
from the Apache Lucene project. Its major features include powerful full-text
search, hit highlighting, faceted search and analytics, rich document parsing,
geospatial search, extensive …</p>
+ <div class="read-more">
+ <a href="/news.html#apache-solr-620-available">Read full article on
news page →</a>
+ </div>
+ <hr/>
<h2 id="apache-solr-552-available" class="post-item-title">
<a href="/news.html#apache-solr-552-available">Apache Solr 5.5.2
available</a>
<a class="headerlink" href="#apache-solr-552-available" title="Permanent
link">¶</a>
@@ -402,19 +415,6 @@
<a href="/news.html#apache-solr-4104-available">Read full article on
news page →</a>
</div>
<hr/>
- <h2 id="apache-solr-500-and-reference-guide-for-50-available"
class="post-item-title">
- <a
href="/news.html#apache-solr-500-and-reference-guide-for-50-available">Apache
Solr 5.0.0 and Reference Guide for 5.0 available</a>
- <a class="headerlink"
href="#apache-solr-500-and-reference-guide-for-50-available" title="Permanent
link">¶</a>
- </h2>
- <h5>
- <strong>News:</strong>
- 20 February 2015
- </h5>
- <p>Solr is the popular, blazing fast, open source NoSQL search platform
from the Apache Lucene project. Its major features include powerful full-text
search, hit highlighting, faceted search, dynamic clustering, database
integration, rich document (e.g., Word, PDF) handling, and geospatial search.
Solr is highly scalable, providing fault tolerant distributed search …</p>
- <div class="read-more">
- <a
href="/news.html#apache-solr-500-and-reference-guide-for-50-available">Read
full article on news page →</a>
- </div>
- <hr/>
<div class="pagination">
<a href="/posts7.html">← Previous</a>
diff --git a/output/posts9.html b/output/posts9.html
index eb37281b4..bf6c48876 100644
--- a/output/posts9.html
+++ b/output/posts9.html
@@ -155,6 +155,19 @@
<h1 id="solr-news">Solr<sup>™</sup> News<a class="headerlink"
href="#solr-news" title="Permanent link">¶</a></h1>
+ <h2 id="apache-solr-500-and-reference-guide-for-50-available"
class="post-item-title">
+ <a
href="/news.html#apache-solr-500-and-reference-guide-for-50-available">Apache
Solr 5.0.0 and Reference Guide for 5.0 available</a>
+ <a class="headerlink"
href="#apache-solr-500-and-reference-guide-for-50-available" title="Permanent
link">¶</a>
+ </h2>
+ <h5>
+ <strong>News:</strong>
+ 20 February 2015
+ </h5>
+ <p>Solr is the popular, blazing fast, open source NoSQL search platform
from the Apache Lucene project. Its major features include powerful full-text
search, hit highlighting, faceted search, dynamic clustering, database
integration, rich document (e.g., Word, PDF) handling, and geospatial search.
Solr is highly scalable, providing fault tolerant distributed search …</p>
+ <div class="read-more">
+ <a
href="/news.html#apache-solr-500-and-reference-guide-for-50-available">Read
full article on news page →</a>
+ </div>
+ <hr/>
<h2 id="apache-solr-4103-available" class="post-item-title">
<a href="/news.html#apache-solr-4103-available">Apache Solr 4.10.3
Available</a>
<a class="headerlink" href="#apache-solr-4103-available"
title="Permanent link">¶</a>