I'd recommend not using the native binary protocol unless you have proof it makes a substantial difference for your application.
If you need to do bulk work, connection pooling, keep-alive, and batching on the client-side over HTTP can easily vastly exceed what ES cluster can handle. Users of my library have confirmed this.
You could use my library as a guide to the abstract data types, even I don't use the native protocol.
If you need to do bulk work, connection pooling, keep-alive, and batching on the client-side over HTTP can easily vastly exceed what ES cluster can handle. Users of my library have confirmed this.
You could use my library as a guide to the abstract data types, even I don't use the native protocol.
https://github.com/bitemyapp/bloodhound