- ElasticSearch: High Level Rest Client Connection
- ElasticSearch: High Level Client Post
- ElasticSearch: High Level Client Search
- ElasticSearch: High Level Client Search Scrolling
In this tutorial I will show you how to perform a search using the high level client. If you have not already done so please connect to ElasticSearch.
Imports
import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.search.SearchHits; import org.elasticsearch.search.SearchHit; import org.elasticsearch.action.search.SearchType;
Now we can perform the search.
final SearchRequest request = new SearchRequest(); request.searchType(SearchType.QUERY_THEN_FETCH); final String[] types = { "doc" }; final String[] indexes = { "index" }; //Specify the types that your search applies to. //Note that this is not needed. If ommitted it will search all. request.types(types); //Specify the indexes that your search applies to. //Note that this is not needed. If ommitted it will search all. request.indices(indexes); final SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); //You can add any type of query into this query. Adjust to what you need. searchSourceBuilder.query(MyQuery); request.source(searchSourceBuilder); final SearchResponse searchResponse = client.search(request); //This will let us know if the search was terminated early. final Boolean terminatedEarly = searchResponse.isTerminatedEarly(); //This will let us know if it timed out. final boolean timedOut = searchResponse.isTimedOut(); //Now to loop through our hits to do what we need to final SearchHits searchHits = searchResponse.getHits(); for (final SearchHit hit : searchHits) { //Do work }
One thought on “ElasticSearch: High Level Client Search”
Comments are closed.