You are looking at documentation for an older release.
Not what you want? See the
current release documentation.
Tips and Tricksedit
This page lists some general tips and tricks provided by the community
Posting Elasticsearch queries from JavaScriptedit
Consider a scenario where you are using client side libraries like elasticjs
but want security to be provided by server side business logic. Consider this example using WebAPI
WARN: make sure dynamic scripting is turned off if you decide to open the full query DSL to the client!
[RoutePrefix("api/Search")] public class SearchController : ApiController { [ActionName("_search")] public IHttpActionResult Post([FromBody]SearchDescriptor<dynamic> query) {; var client = new ElasticClient(); //Your server side security goes here var result = client.Search(q => query); return Ok(result); } }
The fragments [RoutePrefix("api/Search")]
and [ActionName("_search")]
will let you change your elastic search Url
from http://localhost:9200/_search
to http://yourwebsite/api/Search/_search
and let things work as normal.
The fragment [FromBody]SearchDescriptor<dynamic> query
will convert the JSON query into NEST SearchDescriptor.
The fragment client.Search(q => query)
will execute the query.