If you're free to choose how to interact with ES you should use the native Java API [1]. All others are wrappers for the http client where the http client is a wrapper for the native Java client API.
Lua is commonly embedded in other programs, like nginx (via ngx_lua) or haproxy (starting in 1.6). This would let you interacti with elasticsearch from them.
[1] https://github.com/mashape/kong