/elasticsearch-carrot2

Carrot2 plugin for ElasticSearch

Primary LanguageJavaApache License 2.0Apache-2.0

Search results clustering for ElasticSearch

This clustering plugin adds on-the-fly text clustering capability to an ElasticSearch node. Clustering algorithms from the Carrot2 project (open source) are used by default. Proprietary Lingo3G algorithm from Carrot Search can also be used via an extension plugin.

Installation

In order to install a stable version of the plugin, run ElasticSearch's plugin utility (remember to pick the ES-compatible version of the plugin from the table below!).

bin/elasticsearch-plugin install org.carrot2:elasticsearch-carrot2:7.17.7

To install from sources (master branch), run:

./gradlew clean build

then install with (use the full, absolute path):

Linux:
bin/elasticsearch-plugin install file:/.../(plugin)/build/distributions/*.zip

Windows:
bin\elasticsearch-plugin install file:///c:/.../(plugin)/build/distributions/*.zip

If plugin installation shows a popup to request additional permissions, you have to accept it. Plugin versions for Carrot2 4.0.0+ do not require any extra permissions.

Usage

To play with the examples in the documentation, you'll have to allow CORS requests from null (if opened directly) or localhost (if served by some local HTTP server). Add the following to ES/config/elasticsearch.yml:

# Allow localhost cross-origin requests.
http.cors.enabled: true
http.cors.allow-origin: /(null)|(https?:\/\/localhost(:[0-9]+)?)|(https?:\/\/carrot2\.github\.io(:[0-9]+)?)/

More information about security implications of enabling CORS are here: https://www.elastic.co/guide/en/elasticsearch/reference/5.0/modules-http.html

Finally, start ES and open up the documentation in your browser (can be opened as a file resource):

(plugin sources)/doc/index.html

The above regular expression enables CORS headers from github, so you can open the documentation directly from there:

https://carrot2.github.io/elasticsearch-carrot2/

CURL request examples are available here:

https://github.com/carrot2/elasticsearch-carrot2/tree/master/doc/curl/

Versions and compatibility

Recommended compatibility chart (matching versions of ES, Carrot2, and optionally Lingo3G). (+) means it'll probably work with newer releases (we test against the latest version from that branch).

The plugin is compiled against an exact version of ES and will not work with any other version. The numbering of the plugin will always correspond to the numbering of ES to easily identify the version of ES the plugin will work with. The only exceptions from this rule will be critical bugfixes, which will have the fourth version number: then the first three numbers denote ES release the plugin is compiled against.

If you need a point version that has not been released (yet or skipped), then update the project descriptor (pom.xml) and recompile from sources, this will yield a binary version of the plugin compatible with the given ES version.

Lingo3G 2.x will be supported via a separate extension plugin.

Clustering Plugin Elasticsearch Carrot2 Lingo3G
(master branch) 4.3.1 ext-plugin
7.17.7 → 4.3.1 ext-plugin
7.14.1 → 4.3.1 ext-plugin
7.13.4 → 4.3.1 ext-plugin
7.12.0 → 4.2.1 ext-plugin

Discontinued version branches:

Clustering Plugin Elasticsearch Carrot2 Lingo3G
7.11.2 → 4.0.4 ext-plugin
7.10.2.2 7.10.2 4.3.1 ext-plugin
7.10.0 → 7.10.2 4.0.4 ext-plugin
7.9.2 → 7.9.3 4.0.4 ext-plugin
7.8.1 4.0.4 ext-plugin
7.7.1 4.0.4 ext-plugin
7.6.0.1 7.6.0 4.0.0-beta3 not supported
7.6.0 4.0.0-beta3 not supported
7.0.0 → 7.5.0 3.16.1 1.16.1
6.8.5 → 6.8.9 3.16.1 1.16.1
6.7.1 3.16.1 1.16.1
6.6.2 3.16.1 1.16.1
6.5.4 3.16.0 1.16.0
6.4.3 3.16.0 1.16.0
6.3.2 3.16.0 1.16.0
6.2.4 3.16.0 1.16.0
6.2.3 3.15.1 1.15.1
6.1.1 3.15.1 1.15.1
5.5.2 3.15.1 1.15.1
5.4.0 3.15.1 1.15.1
5.3.0 3.15.1 1.15.1
5.2.0 3.15.1 1.15.1
5.1.1 3.15.0 1.15.0
2.4.2 → 2.4.3 3.15.0 1.15.0
2.4.1.1 3.15.0 1.15.0
2.4.1 → 2.4.1 3.14.0 1.14.0
2.4.0 → 2.4.0.1 3.12.0 1.13.0
2.3.0 → 2.3.4 3.12.0 1.13.0
2.2.1 3.12.0 1.13.0
2.2.0 3.11.0 1.12.3
2.1.0 → 2.1.2 3.11.0 1.12.3
2.0.0 → 2.0.2 3.11.0 1.12.3
1.9.1 1.6.0 → 1.7.2+? 3.10.4 1.12.3
1.9.0 1.6.0 → 1.7.0+? 3.10.1 1.12.0
1.8.0 1.4.0 → 1.6.0+ 3.9.3 1.10.0
1.7.0 1.3.0 → 1.3.5+ 3.9.3 1.10.0
1.6.0 1.2.0 → 1.2.2+ 3.9.2 1.9.1
1.5.0 1.1.0 → 1.1.2+ 3.9.2 1.9.1
1.4.0 1.0.0 → 1.0.3 3.9.0 1.9.0
1.3.1 1.0.0 → 1.0.3 3.8.1 1.8.1
1.3.0 1.0.0 → 1.0.3 3.8.1 1.8.1
1.2.2 0.90.10→ 0.90.13 3.8.0 1.8.0
1.2.1 0.90.10→ 0.90.11 3.8.0 1.8.0
1.2.0 0.90.4 → 0.90.9 3.8.0 1.8.0
1.1.1 0.90.4 → 0.90.9 3.8.0 1.8.0
1.1.0 0.90.2 → 0.90.3 3.8.0 1.8.0
1.0.1 0.90 → 0.90.3 3.7.1 1.7.1
1.0.0 0.90 → 0.90.3 3.7.1 1.7.1

License

This software is licensed under the Apache 2 license. Full text of the license is in the repository (LICENSE.txt).