add implementation for search with query DSL