Installation

This article outlines Lingo3G software requirements, installation steps and the license file location mechanism.

Requirements

License file
You need a valid license file to download and run Lingo3G. To get a trial license or recover a license you purchased, contact us at info@carrotsearch.com.
Java 11 or later
Lingo3G requires Java 11 or later. If you don't have Java installed on your system, you can get it from https://adoptopenjdk.net.
Operating System
Lingo3G works on any modern operating system that supports Java 11 or later, including Windows, Linux or Mac OS.
Web browser

Lingo3G apps require a modern browser, such as the latest version of Chrome, Firefox, Safari or Edge.

Internet Explorer is not supported.

Installation

To install Lingo3G on your machine, perform these steps:

  1. Verify if Java 11 or later is available on your system by running the following command:

    java -version

    If Java 11 or later is available, the output should be similar to:

    openjdk version "11.0.9" 2020-10-20
    OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9+11)
    OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9+11, mixed mode)

    If Java 11 is not available on your system, you can get the installation package from https://adoptopenjdk.net.

  2. Go to secure.carrotsearch.com and download Lingo3G version 2.0.0 or later.

  3. Unpack the archive to a local folder.

  4. Copy your license file (the ZIP archive or the XML license file inside the ZIP) to the dcs/conf folder inside the Lingo3G folder.

    Sometimes it may be convenient to keep the license file at a different location, such as the user's home directory. See License file locations for the list of possibilities.

Now you are ready to run the Clustering Workbench app and the REST API. The Java API requires additional setup steps.

License

You need a valid license to download and run Lingo3G. To get an evaluation license or recover a license you purchased, contact us at info@carrotsearch.com.

The license is a plain-text unicode string. We distribute licenses as XML files following the license*.xml naming convention. The license file can be compressed with ZIP, but the resulting archive must contain exactly one file (the license) inside the archive. (We e-mail license files inside ZIP archives because some spam filters block XML attachments.)

To validate a license file, upload it at secure.carrotsearch.com. The validator shows when your license expires (you will not be able to use the software beyond that date) and when software maintenance expires (you will not be able to upgrade to versions released after that date). The validator also lets you download all the products covered by the license file.

Carrot Search license validator.

Carrot Search license validator showing contents of a license file along with software download links.

License file locations

To perform clustering, Lingo3G must be able to read the license file at runtime. Lingo3G attempts to read the license from a number of locations. The specific locations are different for the Java API and the Document Clustering Server.

Document Clustering Server

Document Clustering Server scans the following locations for license files:

  1. If you pass license string in the license request parameter, Lingo3G will use it.

  2. DCS attempts to read the license from all files matching thelicense*.(xml|zip) pattern under the dcs/conffolder. We recommend this location for installing the license file in the DCS.

  3. If you define the LICENSE_LINGO3G environment variable to point to an accessible file or directory, Lingo3G will scan that location for any files matching the license*.(xml|zip) pattern. Lingo3G will try to find a valid license among all matching files.

  4. If user.home system property is accessible and points to a readable folder, Lingo3G will scan that location for any files matching the license*.(xml|zip) pattern. Lingo3G will try to find a valid license among all matching files.

Java API

Lingo3G Java API uses the following steps to determine which license to use for processing the request. Once Lingo3G finds a valid license, it does not check further locations.

  1. If you pass license string in the license parameter, Lingo3G will use it.

  2. If you define the LICENSE_LINGO3G environment variable to point to an accessible file or directory, Lingo3G will scan that location for any files matching the license*.(xml|zip) pattern. Lingo3G will try to find a valid license among all matching files.

  3. If user.home system property is accessible and points to a readable folder, Lingo3G will scan that location for any files matching the license*.(xml|zip) pattern. Lingo3G will try to find a valid license among all matching files.

  4. If you make available a resource called license.xml loadable via the class loader of the Lingo3GClusteringAlgorithm class, Lingo3G will attempt to read the license from that resource.

  5. If you provide any custom LicenseLocationSupplier service loader implementations, Lingo3G will use them to look up licenses.

During software development, it is most convenient to copy the license file into your home directory. In production, we recommend creating a custom license location supplier extension that will provide the license location to Lingo3G. You can find an an example of this approach in the elasticsearch-lingo3g extension plugin for Elasticsearch.