Would ES be suitable for primary storage of images (binary data) as well as
the primary way of retrieving images and presenting to the user?
I my case I consider it for a document-based website, where each document
would have 1-5 images. The obvious way would be to store these images as
certain fields in the corresponding ES-document.
If your images are small (a few kb), you could indeed store them into
Elasticsearch by encoding them using base 64 for example. It would work as
well if they are large, but it could typically hurt search performance by
increasing churn on the filesystem cache. An option could be to have two
Elasticsearch instances (on different hosts), one that store data that is
used for search and stores image metadata and another one that is used as a
key-value store of images. The first instance would be used for search, and
on client side, you could call the 2nd Elasticsearch instance
asynchronously (to not delay the rendering of the page) in order to display
images.
Regarding primary storage on Elasticsearch, we are working on improving
Elasticsearch reliability, but this requires maturity and thorough testing
so we still recommend being able to reindex from another data-source.
Would ES be suitable for primary storage of images (binary data) as well
as the primary way of retrieving images and presenting to the user?
I my case I consider it for a document-based website, where each document
would have 1-5 images. The obvious way would be to store these images as
certain fields in the corresponding ES-document.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.