On 9/27/22 19:32, Nathanael Anderson wrote:
I was trying a new install of dovecot w/ solr9.   I've manually fixed the file linking to the proper directories, however one plugin is no longer shipped.   Since the solr files aren't updated yet to 9, can anyone tell me if I need the discontinued velocity plugin that was default in the dovecot solr 7.7 config file.   It appears it is now a third party plugin that hasn't been updated for 3 years.

The velocity stuff that Solr ships with is a templating system that allows Solr to host a little website showcasing its capabilities.  It is strongly recommended to never use this in production, as it requires that end users have direct network access to the Solr install, which is never a good idea.

Dovecot accesses the API directly and does not need velocity.

I am running a dev version of Solr 9.1.0 with the config and schema stripped down to just what is needed for Dovecot.  I have added the jars necessary for the ICU analysis components and I am using two of those analysis components in my schema.

I installed Solr on Ubuntu Server using the service installer script included in the download.  This extracts the tarball in /opt, and then sets up /opt/solr as a symlink to the version-specific directory in /opt.  It creates a directory structure under /var/solr and creates /etc/default/solr.in.sh.  If you use a service name other than solr, that will be named /etc/default/${servicename}.in.sh and I believe the data will go to /var/${servicename}.

For ICU, I created /var/solr/data/lib, then copied icu4j-70.1.jar and lucene-analysis-icu-9.3.0.jar from /opt/solr/modules/analysis-extras/lib to that new lib directory. Solr 9.0.0 would have lucene jars from Lucene 9.0.0, but the 9.x branch is currently using Lucene 9.3.0.  Do not use <lib> config elements in solrconfig.xml to load the jars.  My solrconfig.xml and managed-schema.xml files can be found here:

https://paste.elyograg.org/view/97597ed3
https://paste.elyograg.org/view/dca55086

My index is quite small by Solr standards, which is why I have such a low maxTime on autoSoftCommit.  Larger indexes may do better with a larger interval there.

I use LATEST for luceneMatchVersion, which generates a warning when Solr starts.  I am also using 2.0 for the schema version so that it will automatically pick up new defaults after the 1.6 version when those versions are created in later versions of Solr.

This is the current contents of /etc/default/solr.in.sh with commented lines removed:

---------------
SOLR_PID_DIR="/var/solr"
SOLR_HOME="/var/solr/data"
LOG4J_PROPS="/var/solr/log4j2.xml"
SOLR_LOGS_DIR="/var/solr/logs"
SOLR_PORT="8983"
SOLR_HEAP="1g"
GC_TUNE=" \
  -XX:+UseG1GC \
  -XX:+ParallelRefProcEnabled \
  -XX:MaxGCPauseMillis=100 \
  -XX:+UseLargePages \
  -XX:+AlwaysPreTouch \
  -XX:+ExplicitGCInvokesConcurrent \
  -XX:ParallelGCThreads=2 \
  -XX:+UseStringDeduplication \
  -XX:+UseNUMA \
"
SOLR_JAVA_STACK_SIZE="-Xss1m"
SOLR_ULIMIT_CHECKS=false
SOLR_GZIP_ENABLED=true
SOLR_JETTY_HOST=0.0.0.0
---------------

Once you have all that in place, start and stop solr using service or systemctl.  Don't run the solr script directly except to create the index ... and for that you must run it as the solr user. Running it as root is prohibited by default, and forcing it will cause problems.

My Solr install is running in cloud mode, but I have removed the things that configure that to make this info easier to use.

One final note:  Solr 9 cannot use indexes touched by Solr 7 or earlier.  You will need to completely reindex.

Thanks,
Shawn

Reply via email to