Extending Elasticsearch
Elasticsearch is a rich-in-feature, stable, and mature project, yet it is growing everyday. Like a good open source project, Elasticsearch offers ways to extend and let users customize Elasticsearch in their own ways. There are many things you would want to achieve through customization, to name a few: you would want to support a new repository to which Elasticsearch can connect and keep data, you might be interested to write your own analyzer, which does some additional tasks as compared to the existing analyzers in Elasticsearch, and so on. For the previous versions of Elasticsearch (prior to v5), developers used to create their own rivers to support a new data source. In fact, using the HTTP and transport modules, there are numerous opportunities of extending Elasticsearch beyond Elasticsearch packaged code and providing something that helps to integrate Elasticsearch with some other tool or technology.
Although not too many attempts were made to customize Elasticsearch...