Skip to content

Commit 769bc65

Browse files
committed
document nouveau handling of lucene 9 & 10
1 parent adea2a8 commit 769bc65

File tree

4 files changed

+40
-4
lines changed

4 files changed

+40
-4
lines changed

nouveau/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
Nouveau is a modern replacement for dreyfus/clouseau and is built on;
44

55
1) the Dropwizard framework (https://dropwizard.io)
6-
2) Java 11+
7-
3) Lucene 9
6+
2) Java 21+
7+
3) Lucene 10
88

99
Nouveau transforms Apache CouchDB databases into Apache Lucene indexes at the shard level and then merges the results together.
1010

@@ -23,7 +23,7 @@ This work is currently EXPERIMENTAL and may change in ways that invalidate any e
2323
* integration with resharding
2424
* update=false
2525
* `_nouveau_info`
26-
* `_search_cleanup`
26+
* `_nouveau_cleanup`
2727
* /openapi.{json.yaml}
2828

2929
## What doesn't work yet?

src/docs/src/api/database/cleanup.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@
5858
"ok": true
5959
}
6060
61+
.. _api/db/nouveau_cleanup:
62+
6163
==========================
6264
``/{db}/_nouveau_cleanup``
6365
==========================

src/docs/src/ddocs/nouveau.rst

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,40 @@ results from deeper in the result set.
6363
A nouveau index will inherit the partitioning type from the ``options.partitioned`` field
6464
of the design document that contains it.
6565

66+
.. _ddoc/nouveau/lucene_upgrade:
67+
68+
Lucene Version Upgrade
69+
======================
70+
71+
Nouveau has been upgraded to use Lucene 10, earlier releases used Lucene 9.
72+
73+
Nouveau can query and update indexes created by Lucene 9 but will not create new
74+
ones. The index definition can optionally define a ``lucene_version`` field
75+
(which must be either 9 or 10 expressed as an integer). If not specified
76+
when defining a new index the current version (10) will be automatically
77+
added to the definition.
78+
79+
As Lucene only supports indexes up to one major release behind the current, it
80+
is important to rebuild all indexes to the current release. As Lucene major
81+
releases are infrequent, and Nouveau supports 9 and 10 versions simultaneously
82+
it is only necessary to rebuild version 9 indexes before Nouveau upgrades to
83+
Lucene 11 (when it exists), and so the plugin rebuilds one index at a time as a
84+
background activity. A ``couch_scanner`` plugin is available to automate this
85+
process, and can be enabled as follows;
86+
87+
.. code-block:: ini
88+
89+
[couch_scanner_plugins]
90+
nouveau_index_upgrader = true
91+
92+
The plugin will scan all design documents for index definitions either with no
93+
``lucene_version`` field or one equal to a previous version (lower than
94+
10). The new index will be built by the plugin and, on successful
95+
completion, will update the ``lucene_version`` field in the index
96+
definition. Search requests against that index will seamlessly switch from the
97+
old index to the new one. Invoking the :ref:`_nouveau_cleanup <api/db/nouveau_cleanup>`
98+
will delete the old indexes.
99+
66100
.. _ddoc/nouveau/field_types:
67101

68102
Field Types

src/docs/src/install/nouveau.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ service that embeds `Apache Lucene <https://lucene.apache.org>`_. Typically, thi
2525
service is installed on the same host as CouchDB and communicates with it over
2626
the loopback network.
2727

28-
Nouveau server is runtime-compatible with Java 11 or higher.
28+
Nouveau server is runtime-compatible with Java 21 or higher.
2929

3030
Enable Nouveau
3131
==============

0 commit comments

Comments
 (0)