ElasticSearch indexing is really quite slow (everything running over HTTP probably does not necessarily help, though you are using a somewhat botchy batch API anyway) -- think 5k items per second for something like e.g. HN posts --, it really is tuned for retrieval performance. Even on really quite mediocre hardware you can do full-text queries across ten(s) of GB and they'll rarely take longer than, say, 50 ms.