{"componentChunkName":"component---node-modules-carrotsearch-gatsby-theme-apidocs-templates-documentation-page-js","path":"/installation/","result":{"data":{"html":{"frontmatter":{"id":"installation","title":"Installation"},"html":"<article>\n  <h1>Installation</h1>\n\n  <p id=\"4decfa9b\">\n    This article outlines Lingo3G software requirements, installation steps and\n    the license file location mechanism.\n  </p>\n\n  <section id=\"requirements\">\n    <h2>\n        <a class=\"anchor\" href=\"#requirements\" aria-hidden=\"true\"><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"/></svg></a>Requirements\n      </h2>\n\n    <dl>\n      <dt>License file</dt>\n      <dd>\n        You need a valid license file to download and run Lingo3G. To get a\n        trial license or recover a license you purchased, contact us at\n        <a href=\"mailto:info@carrotsearch.com\">info@carrotsearch.com</a>.\n      </dd>\n\n      <dt>Java 11 or later</dt>\n      <dd>\n        Lingo3G requires Java 11 or later. If you don't have Java installed on\n        your system, you can get it from\n        <a href=\"https://adoptopenjdk.net/\">https://adoptopenjdk.net</a>.\n      </dd>\n\n      <dt>Operating System</dt>\n      <dd>\n        Lingo3G works on any modern operating system that supports Java 11 or\n        later, including Windows, Linux or Mac OS.\n      </dd>\n\n      <dt>Web browser</dt>\n      <dd>\n        <p id=\"requirements:b2ee4477\">\n          Lingo3G apps require a modern browser, such as the latest version of\n          Chrome, Firefox, Safari or Edge.\n        </p>\n\n        <p id=\"requirements:1812cce1\">Internet Explorer is not supported.</p>\n      </dd>\n    </dl>\n  </section>\n\n  <section id=\"installation\">\n    <h2>\n        <a class=\"anchor\" href=\"#installation\" aria-hidden=\"true\"><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"/></svg></a>Installation\n      </h2>\n\n    <p id=\"installation:ef8b2145\">To install Lingo3G on your machine, perform these steps:</p>\n\n    <ol>\n      <li>\n        <p id=\"installation:2504ecb3\">\n          Verify if Java 11 or later is available on your system by running the\n          following command:\n        </p>\n\n        <div class=\"gatsby-highlight\">\n    <pre class=\"language-shell\"><code data-language=\"shell\">java -version\n</code></pre>\n  </div>\n\n        <p id=\"installation:d354334d\">\n          If Java 11 or later is available, the output should be similar to:\n        </p>\n\n        <div class=\"gatsby-highlight\">\n    <pre class=\"language-none\"><code data-language=\"none\">openjdk version \"11.0.9\" 2020-10-20\nOpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9+11)\nOpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9+11, mixed mode)\n</code></pre>\n  </div>\n\n        <p id=\"installation:a25dd9b3\">\n          If Java 11 is not available on your system, you can get the\n          installation package from\n          <a href=\"https://adoptopenjdk.net/\">https://adoptopenjdk.net</a>.\n        </p>\n      </li>\n\n      <li>\n        <p id=\"installation:a7bdff96\">\n          Go to\n          <a href=\"https://secure.carrotsearch.com\">secure.carrotsearch.com</a>\n          and download Lingo3G version 2.0.0 or later.\n        </p>\n      </li>\n\n      <li>\n        <p id=\"installation:d3b25751\">Unpack the archive to a local folder.</p>\n      </li>\n\n      <li>\n        <p id=\"installation:24858f89\">\n          Copy your license file (the ZIP archive or the XML license file inside\n          the ZIP) to the\n          <code>dcs/conf</code> folder inside the Lingo3G folder.\n        </p>\n\n        <p id=\"installation:aca50443\">\n          Sometimes it may be convenient to keep the license file at a different\n          location, such as the user's home directory. See\n          <a href=\"#license-file:locations\">License file locations</a>\n          for the list of possibilities.\n        </p>\n      </li>\n    </ol>\n\n    <p id=\"installation:4e56f8b3\">\n      Now you are ready to run the\n      <a href=\"/clustering-workbench-app/\">Clustering Workbench app</a> and\n      the <a href=\"/rest-api-basics/\">REST API</a>. The Java API requires\n      additional\n      <a href=\"/java-api-basics/#dependency-setup\">setup</a> steps.\n    </p>\n  </section>\n\n  <section id=\"license\">\n    <h2>\n        <a class=\"anchor\" href=\"#license\" aria-hidden=\"true\"><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"/></svg></a>License\n      </h2>\n\n    <p id=\"license:bb885cf3\">\n      You need a valid license to download and run Lingo3G. To get an evaluation\n      license or recover a license you purchased, contact us at\n      <a href=\"mailto:info@carrotsearch.com\">info@carrotsearch.com</a>.\n    </p>\n\n    <p id=\"license:cd1b266d\">\n      The license is a plain-text unicode string. We distribute licenses as XML\n      files following the <code>license*.xml</code> naming convention. The\n      license file can be compressed with ZIP, but the resulting archive must\n      contain exactly one file (the license) inside the archive. (We e-mail\n      license files inside ZIP archives because some spam filters block XML\n      attachments.)\n    </p>\n\n    <p id=\"license:fbe22610\">\n      To validate a license file, upload it at\n      <a href=\"https://secure.carrotsearch.com\">secure.carrotsearch.com</a>. The\n      validator shows when your license expires (you will not be able to use the\n      software beyond that date) and when software maintenance expires (you will\n      not be able to upgrade to versions released after that date). The\n      validator also lets you download all the products covered by the license\n      file.\n    </p>\n\n    <figure id=\"license:validator\" class=\"round\" style=\"margin-top: 2em\">\n      <a href=\"https://secure.carrotsearch.com\" target=\"_blank\">\n        <div style=\"position: relative\">\n        <span style=\"padding-bottom: 47.22222222222222%; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAIAAAC9o5sfAAAACXBIWXMAAAsSAAALEgHS3X78AAABvUlEQVQozz2QTW/bMAyG/f+vuwwDtkN72GG3nTZsQ1u0SLEm2do0s534S7as+EOyZFuyZSuyPSEDRhIECPLhS9AKgiBJEphChBDnnFJqcgjSve39fnFxkw9KOgewd32E4bIsXHS2Gz7/cZzwYAEADEwwloM0PaWUEILVbZaTU1745VMrcZEZh6/wTmnZd11+ymB+OBaPllE9oVMCESZEXcwoE7BB9pcsfFJKT9NMaFNRXldK62lU54KwinZtPVmEEDONKya6/r9y37UNKwUX/SjH88Bow1oGW1vPahxGU1Y1Rq1jNU1jmHmel4tdYE4ZK0vmo92++MYlK3IMs+BH8E7qVvYS55Wbrm+jDxZjbJqmfwdrrfu+F+YQghnhj9GngP5cpiUGcYz8e3A9TmZzlyaZk65X8KPlpTs72jhga1/CQzs5CghhnpLb47VHHxa9+H7ox+5X741R5i2Pw/Q5vPsevLXCcufAtZtujqdfLtqG5etw7gycQXxzuDpe4DAII3i8id4P2vyHJ1G6j1f38ZUlpJxmNaix7WTT9byXZ62LsqC4WYPPoN6aR1S0JowcyMN5GsZRMSYQjbxq9RdwD+ntyPph1gAAAABJRU5ErkJggg==')\" class=\"preview fluid\"> </span>\n        <img class=\"fluid\" alt=\"Carrot Search license validator.\" title src=\"../static/16c4f748fb2f81739f9cc6f1155fb153/eefce/license-validator.png\" srcset=\"../static/16c4f748fb2f81739f9cc6f1155fb153/dfaee/license-validator.png 180w,\n../static/16c4f748fb2f81739f9cc6f1155fb153/4d463/license-validator.png 360w,\n../static/16c4f748fb2f81739f9cc6f1155fb153/eefce/license-validator.png 720w,\n../static/16c4f748fb2f81739f9cc6f1155fb153/dabea/license-validator.png 1080w,\n../static/16c4f748fb2f81739f9cc6f1155fb153/87339/license-validator.png 1440w,\n../static/16c4f748fb2f81739f9cc6f1155fb153/04a44/license-validator.png 1788w\" sizes=\"(max-width: 720px) 100vw, 720px\">\n      </div>\n      </a>\n      <figcaption>\n        <p>\n          <a href=\"https://secure.carrotsearch.com\" target=\"_blank\">Carrot Search license validator</a>\n          showing contents of a license file along with software download links.\n        </p>\n      </figcaption>\n    </figure>\n\n    <section id=\"license-file:locations\">\n      <h3>\n        <a class=\"anchor\" href=\"#license-file:locations\" aria-hidden=\"true\"><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"/></svg></a>License file locations\n      </h3>\n\n      <p id=\"license-file:locations:be04f9d2\">\n        To perform clustering, Lingo3G must be able to read the license file at\n        runtime. Lingo3G attempts to read the license from a number of\n        locations. The specific locations are different for the Java API and the\n        Document Clustering Server.\n      </p>\n\n      <section id=\"license-file:locations:dcs\">\n        <h4>\n        <a class=\"anchor\" href=\"#license-file:locations:dcs\" aria-hidden=\"true\"><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"/></svg></a>Document Clustering Server\n      </h4>\n\n        <p id=\"license-file:locations:dcs:bdee9991\">\n          Document Clustering Server scans the following locations for license\n          files:\n        </p>\n\n        <ol>\n          <li>\n            <p id=\"license-file:locations:dcs:6e076ba2\">\n              If you pass license string in the\n              <a href=\"lingo3g-parameters.html/#license\"><code>license</code></a>\n              request parameter, Lingo3G will use it.\n            </p>\n          </li>\n\n          <li>\n            <p id=\"license-file:locations:dcs:fb61ce8b\">\n              DCS attempts to read the license from all files matching the<code>license*.(xml|zip)</code>\n              pattern under the <code>dcs/conf</code>folder. We recommend this\n              location for installing the license file in the DCS.\n            </p>\n          </li>\n\n          <li>\n            <p id=\"license-file:locations:dcs:99b525ca\">\n              If you define the <code>LICENSE_LINGO3G</code> environment\n              variable to point to an accessible file or directory, Lingo3G will\n              scan that location for any files matching the\n              <code>license*.(xml|zip)</code> pattern. Lingo3G will try to find\n              a valid license among all matching files.\n            </p>\n          </li>\n\n          <li>\n            <p id=\"license-file:locations:dcs:100bd65c\">\n              If <code>user.home</code> system property is accessible and points\n              to a readable folder, Lingo3G will scan that location for any\n              files matching the <code>license*.(xml|zip)</code>\n              pattern. Lingo3G will try to find a valid license among all\n              matching files.\n            </p>\n          </li>\n        </ol>\n      </section>\n\n      <section id=\"license-file:locations:java-api\">\n        <h4>\n        <a class=\"anchor\" href=\"#license-file:locations:java-api\" aria-hidden=\"true\"><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"/></svg></a>Java API\n      </h4>\n\n        <p id=\"license-file:locations:java-api:a39056ec\">\n          Lingo3G Java API uses the following steps to determine which license\n          to use for processing the request. Once Lingo3G finds a valid license,\n          it does not check further locations.\n        </p>\n\n        <ol>\n          <li>\n            <p id=\"license-file:locations:java-api:19a1a562\">\n              If you pass license string in the\n              <a data-external=\"true\" href=\"../javadoc/com/carrotsearch/lingo3g/Lingo3GClusteringAlgorithm.html#license\">\n                <code>license</code></a>\n              parameter, Lingo3G will use it.\n            </p>\n          </li>\n\n          <li>\n            <p id=\"license-file:locations:java-api:99b525ca\">\n              If you define the <code>LICENSE_LINGO3G</code> environment\n              variable to point to an accessible file or directory, Lingo3G will\n              scan that location for any files matching the\n              <code>license*.(xml|zip)</code> pattern. Lingo3G will try to find\n              a valid license among all matching files.\n            </p>\n          </li>\n\n          <li>\n            <p id=\"license-file:locations:java-api:100bd65c\">\n              If <code>user.home</code> system property is accessible and points\n              to a readable folder, Lingo3G will scan that location for any\n              files matching the <code>license*.(xml|zip)</code>\n              pattern. Lingo3G will try to find a valid license among all\n              matching files.\n            </p>\n          </li>\n\n          <li>\n            <p id=\"license-file:locations:java-api:c47ed71c\">\n              If you make available a resource called\n              <code>license.xml</code> loadable via the class loader of the\n              <a data-external=\"true\" href=\"../javadoc/com/carrotsearch/lingo3g/Lingo3GClusteringAlgorithm.html\">\n                <code>Lingo3GClusteringAlgorithm</code></a>\n              class, Lingo3G will attempt to read the license from that\n              resource.\n            </p>\n          </li>\n\n          <li>\n            <p id=\"license-file:locations:java-api:f1662521\">\n              If you provide any custom\n              <a data-external=\"true\" href=\"../javadoc/com/carrotsearch/licensing/LicenseLocationSupplier.html\">\n                <code>LicenseLocationSupplier</code></a>\n              service loader implementations, Lingo3G will use them to look up\n              licenses.\n            </p>\n          </li>\n        </ol>\n\n        <p id=\"license-file:locations:java-api:7d44be92\">\n          During software development, it is most convenient to copy the license\n          file into your home directory. In production, we recommend creating a\n          custom license location supplier extension that will provide the\n          license location to Lingo3G. You can find an an example of this\n          approach in the\n          <a href=\"https://github.com/carrotsearch/elasticsearch-lingo3g\">elasticsearch-lingo3g</a>\n          extension plugin for Elasticsearch.\n        </p>\n      </section>\n    </section>\n  </section>\n</article>","tableOfContents":[{"heading":"Requirements","anchor":"requirements"},{"heading":"Installation","anchor":"installation"},{"heading":"License","anchor":"license","sections":[{"heading":"License file locations","anchor":"license-file:locations","sections":[{"heading":"Document Clustering Server","anchor":"license-file:locations:dcs"},{"heading":"Java API","anchor":"license-file:locations:java-api"}]}]}]}},"pageContext":{"slug":"/installation/"}},"staticQueryHashes":["1164750013"]}