Installation
Prerequisites
- The icat lucene server distribution: icat.lucene-3.0.0-SNAPSHOT-distro.zip
- Java 11+
- A suitable deployed application server that supports JakartaEE 10+. Testing has been carried out with Payara Server Community 6. Other applications servers such as GlassFish and WildFly may work but have not been tested.
Glassfish installation instructions are available.
- Python 3.6+
The setup.properties file
- container
-
Values must be chosen from: TargetServer
Though only Glassfish is working properly at the moment.
- home
- is the top level of the container installation. For Glassfish
it must contain "glassfish/domains" and for JBoss (wildfly) it must
contain jboss-modules.jar.
- port
- is the administration port of the container which is
typically 4848 for Glassfish and 9990 for JBoss.
- secure
- must be set to true or false. If true then only https and not
http connections will be allowed.
The logback.xml file
If you wish to modify the provided logging levels then rename
logback.xml.example to logback.xml and edit to suit.
The run.properties file
- directory
- The path to a directory (whose parent must exist) in which to
store the lucene index. Any environment variables will be respected.
- commitSeconds
- the interval in seconds between committing lucene changes to
disk and updating the index.
- maxShardSize
- The maximum number of documents to store in a single index before "sharding"
into an additional index. All sharded indices are searched at once when
performing a search. Has a maximum value of 2147483648 (max int + 1).
- ip
- Ranges of ip addresses to accept requests from. This should
be as restrictive as possible - just list the icats you need to
listen to. Provide a space separated list of allowed values. These
take the form of an IPV4 or IPV6 address followed by the number of
bits (starting from the most significant) to consider. For example
127.0.0.1/32 is the IPV4 value for localhost.
- units
- Recognised unit names/symbols. Each symbol recognised by indriya's
SimpleUnitFormat should be followed by a colon, and then a comma separated
list of units measuring the same property. If the unit is simply an alias
(e.g. "K: kelvin") this is sufficient. If a conversion is required, it
should be followed by this factor (e.g. "J: eV 1.602176634e-19"). Different
units can be separated by a semi-colon.
- facetFields
- The names of fields which should be stored as facetable. The names should
correspond to how the field appears in the Lucene index, which may be
different to how it is represented in the ICAT database due to flattening of
one to one relationships between entities. Accurate field names can be taken
from `getDoc` function(s) in icat.server. Note that in order to be available
at search time, the field must have been specified when indexing the
documents.
- aggregateFiles
- Aggregate file sizes/counts for Datasets and Investigations as Datafiles are
added or modified (i.e. in real time). This can have a significant
performance impact when writing to the index. If "false", icat.server can
instead be configured to update sizes at a regular intervals.