Handling files
The next use case we will discuss is searching in the contents of files. The most obvious method is adding logic to an application that will be responsible for fetching files, extracting valuable information from them, building JSON objects, and indexing them to ElasticSearch.
Of course the previously mentioned method is valid and you can go this way, but there is another way we would like to show you. We can send documents to ElasticSearch for content extraction and indexing. This requires us to install an additional plugin. Note that we will describe plugins in Chapter 7, Administrating Your Cluster, so we'll skip the detailed description here. For now, just run the following command to install the attachments plugin:
bin/plugin -install elasticsearch/elasticsearch-mapper-attachments/1.6.0
After restarting ElasticSearch, it miraculously gains new skills!
Let's begin with preparing a new index with the following mappings:
{ "mappings" : { "file" : { "properties" : { ...