Hello, Carrot2!
Carrot2 is a programming library for clustering text. It can automatically discover groups of related documents and label them with short key terms or phrases.
Carrot2 can turn, for example, search result titles and snippets into groups like these:

Search result titles and snippets (on the left) for query "salsa" and corresponding cluster labels (right).
What's in the box
Carrot2 provides a common infrastructure and a number of algorithms for clustering of text. Out-of-the-box, Carrot2 distribution comes with:
- a Java API and several clustering algorithm implementations,
- a REST service for mash-ups or integration with languages other than Java,
- a simple search-engine-like demo application that clusters search results,
- code snippets and examples for reuse in your code.
Additionally, several downstream projects provide integration between Carrot2 and popular document retrieval services:
- Apache Solr has built-in support for clustering search results via Carrot2 algorithms,
- elasticsearch-carrot2 plugin provides search results clustering for Elasticsearch.
Try Carrot2 now
The quickest way to try out Carrot2 is to use the public live demo. The demo lets you play with clustering of web search results provided by the eTools search engine or explore medical documents from the PubMed database of medical abstracts.

Screenshot of the live Carrot2 demo application clustering search results for query "JSON".