Skip to content

Instantly share code, notes, and snippets.

@edamico
Last active August 29, 2015 14:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save edamico/8f7a6d41f25a03eb33ce to your computer and use it in GitHub Desktop.
Save edamico/8f7a6d41f25a03eb33ce to your computer and use it in GitHub Desktop.
Code related to blog entry
SearchSourceBuilder getSearchSourceBuilder(QueryWrapper queryWrapper) {
   SearchSourceBuilder sourceBuilder = new SearchSourceBuilder()

   if (queryWrapper.query) { 
      sourceBuilder.query(queryWrapper.query)
   }
  
   if (queryWrapper.fields) {
       sourceBuilder.fields(queryWrapper.fields)
   }
   // ... same for sorting, pagination, agregation, highlighting, etc.
   return sourceBuilder
}
void indexAll(){
   elasticSearchHelper.withElasticSearch { Client client ->
      MyDomainClass.list().each{ MyDomainClass instance ->
         client.index {
            index "myIndex"
            type "myDomainClass"
            id instance.id
            source instance 
      }
   }
}
IndexResponse search(ParamsWrapper queryWrapper){
        elasticSearchHelper.withElasticSearch {Client client ->
            SearchSourceBuilder sourceBuilder = getSearchSourceBuilder(queryWrapper)
            
            SearchRequest request = new SearchRequest()
            request.searchType(SearchType.DFS_QUERY_THEN_FETCH).indices(queryWrapper.indices).types(queryWrapper.types).source(sourceBuilder)
            log.debug "Query:$sourceBuilder"
            
            SearchResponse response = client.search(request).actionGet()
            return new IndexResponse(response)
        }

    }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment