dovecot-fts-solr Solr9 support

PGNet Dev pgnet.dev at gmail.com
Tue May 17 15:02:46 UTC 2022


I run

	dovecot-2.3.18

, & am deploying Solr search with 'dovecot-fts-solr'

I run Solr standalone.

When creating a dedicated 'dovecot' core, cp'ing from Dovecot's included solr schemas

	ls -al /usr/share/doc/dovecot/solr-*
		-rw-r--r-- 1 root root  12K Dec  3 06:48 /usr/share/doc/dovecot/solr-config-7.7.0.xml
		-rw-r--r-- 1 root root 2.7K Dec  3 06:48 /usr/share/doc/dovecot/solr-schema-7.7.0.xml
		-rw-r--r-- 1 root root 2.9K Dec  3 06:48 /usr/share/doc/dovecot/solr-schema.xml

is tested only for Solr 7.7.0

	https://doc.dovecot.org/configuration_manual/fts/solr/
		"The steps described in this page are tested for Solr 7.7.0. For other versions, this these steps may need to be adjusted."

which, per solr docs

	https://solr.apache.org/downloads.html

		About versions and support
			Version     Description
				9.x     Current major version for feature releases (STABLE)
				8.11.x  Previous major version may sometimes receive critical bugfix releases
				10      Next major version, yet to be released (UNSTABLE)
				<8.11   All older versions are End Of Life (EOL)

is EOL'd and unsupported.

In the dovecot 7.7.0 schema, FastLRUCache/LRUCache are used as the caching class(es),

	grep class=.*LRU  /usr/share/doc/dovecot/solr-config-7.7.0.xml
	     <filterCache class="solr.FastLRUCache"
		    <queryResultCache class="solr.LRUCache"
		    <documentCache class="solr.LRUCache"
		           class="solr.search.LRUCache"


For Solr 9,

	cat CHANGES.txt
		Upgrade Notes
		---------------------

		...
		* SOLR-13817: Deprecate legacy SolrCache implementations. Users are encouraged to transition their
		  configurations to use org.apache.solr.search.CaffeineCache instead. (ab)

running solr9 + dovecot-fts-solr search, based on the 7.7.0 schemas, results in errors, failed scan & search.

Modifying the config to use CaffeineCache

	cp solr-config-7.7.0.xml solr-config-9.0.0.xml
	perl -pi -e '\
	 s|solr.FastLRUCache|solr.CaffeineCache|g; \
	 s|solr.LRUCache|solr.CaffeineCache|g; \
	 s|solr.search.LRUCache|solr.search.CaffeineCache|g;' \
	solr-config-9.0.0.xml

appears to do the trick.
Atm, indexing & search -- both manually triggered, and on delivery receipt to Dovecot store -- is working with no errors (yet).

I've not tested exhaustively yet, & don't know if this Cache class change in the schema is both necessary & sufficient for dovecot-fts-solr search use with solr 9.0.0

Given that for Solr

	"<8.11   All older versions are End Of Life (EOL)"

it'd be useful for Dovecot to 'retest' for current, not-EOL'd Solr, and publish/package compatible schemas accordingly.


More information about the dovecot mailing list