Django, thanks to its “included batteries” and wide ecosystem of packages, is a sound solution to build a web service. Also, as it’s written in Python, you will have access to the wide variety of scientific packages (machine learning was there even before it have become so trendy) and other goodies, as it’s quite a popular language.
If you go to the Django packages for search page you’ll encounter many packages. If we don’t filter out database-backed apps, the most popular is Haystack, as it supports lots of backends (Elasticsearch, Solr, Whoosh, Xapian…) and is quite Django-like. However, we won’t use it, because it is difficult for bleeding-edge cases, for custom uses, and is generally much more difficult to debug than your own code. This is due to all of the classes and abstractions of Haystack.
Instead, let us make a Django app with Elasticsearch integrated.