@@ -63,6 +63,39 @@ results from deeper in the result set.
6363 A nouveau index will inherit the partitioning type from the ``options.partitioned `` field
6464of 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
82+ simultaneously it is only necessary to rebuild indexes as a background
83+ activity. A ``couch_scanner `` plugin is available to automate this process, and
84+ can be enabled as follows;
85+
86+ .. code-block :: ini
87+
88+ [couch_scanner_plugins]
89+ nouveau_index_upgrader = true
90+
91+ The plugin will scan all design documents for index definitions either with no
92+ ``lucene_version `` field or one equal to a previous version (lower than
93+ 10). The new index will be built by the plugin and, on successful
94+ completion, will update the ``lucene_version `` field in the index
95+ definition. Search requests against that index will seamlessly switch from the
96+ old index to the new one. Invoking the :ref: `_nouveau_cleanup <api/db/nouveau_cleanup >`
97+ will delete the old indexes.
98+
6699.. _ddoc/nouveau/field_types :
67100
68101Field Types
0 commit comments