diff --git a/app/controllers/concerns/followable_controller.rb b/app/controllers/concerns/followable_controller.rb
index d703c163162c3a8bca651319c9d23ace9ac06303..d4d1cf569c518cd6fa3caf4e6aaf47478e6e12e9 100644
--- a/app/controllers/concerns/followable_controller.rb
+++ b/app/controllers/concerns/followable_controller.rb
@@ -28,4 +28,18 @@ module FollowableController
       render status: :forbidden
     end
   end
+
+  # PUT /v1/users/1/follow
+  # PUT /v1/users/1/follow.json
+  def follow_toggle
+    if !current_user.following?(followable)
+      current_user.follow(followable)
+      render status: :created
+    elsif current_user.following?(followable)
+      current_user.unfollow(followable)
+      render status: :ok
+    else
+      render status: :forbidden
+    end
+  end
 end
diff --git a/app/models/search.rb b/app/models/search.rb
index b74f038095c60c29b08fdcf1fa3dc36107ee4675..cb88cb4b1aa8a59bb0c8c7e3a680c3cfb2eeadaf 100644
--- a/app/models/search.rb
+++ b/app/models/search.rb
@@ -28,7 +28,7 @@ class Search
     {
       query: '*',
       order: 'score',
-      page: 1,
+      page: 0,
       results_per_page: 10
     }.select { |key, _value| !params.key?(key) }
   end
diff --git a/app/serializers/follow_serializer.rb b/app/serializers/follow_serializer.rb
index 5cf3d5147a7441062d416159021903f862ff01f8..ba5ee0682b26cf970310a272a257b52a2298c444 100644
--- a/app/serializers/follow_serializer.rb
+++ b/app/serializers/follow_serializer.rb
@@ -1,9 +1,12 @@
 class FollowSerializer < ActiveModel::Serializer
   cache key: 'follow', expires_in: 24.hours
 
+  attributes :id
+
   def follower
     object.user
   end
 
-  attributes :id, :follower, :followable
+  belongs_to :followable
+  belongs_to :follower
 end
diff --git a/app/services/search_service/collection.rb b/app/services/search_service/collection.rb
index 4bf4e400a3d5126fb3215aa46c1fdf4e735ade66..a66407af69bdd841364fda3bacc41a781dce315b 100644
--- a/app/services/search_service/collection.rb
+++ b/app/services/search_service/collection.rb
@@ -39,6 +39,7 @@ module SearchService
       when 'likes' then { likes: { order: :desc } }
       when 'downloads' then { downloads: { order: :desc } }
       when 'review_average' then { review_average: { order: :desc } }
+      else "_score"
       end
     end
 
diff --git a/app/services/search_service/learning_object.rb b/app/services/search_service/learning_object.rb
index fbd32481d70ccacfc15170ff719e4e5add395ac0..6ae89d3edc218c5ca370797e83f8b418e93a1df7 100644
--- a/app/services/search_service/learning_object.rb
+++ b/app/services/search_service/learning_object.rb
@@ -40,6 +40,7 @@ module SearchService
       when 'likes' then { likes: { order: :desc } }
       when 'downloads' then { downloads: { order: :desc } }
       when 'review_average' then { review_average: { order: :desc } }
+      else "_score"
       end
     end
 
diff --git a/app/services/search_service/model.rb b/app/services/search_service/model.rb
index fe9b38f10442b65f22d68329482fe1f93b3b9a0d..20ca0ad586e5db35ee5a5cd70104b7818403076c 100644
--- a/app/services/search_service/model.rb
+++ b/app/services/search_service/model.rb
@@ -47,7 +47,8 @@ module SearchService
           }
         },
         size: @search.results_per_page,
-        from: ((@search.page.to_i) * (@search.results_per_page.to_i)).to_s
+        from: ((@search.page.to_i) * (@search.results_per_page.to_i)).to_s,
+        sort: order_hash
       }
       return match_all_query if @search.query == '*'
 
@@ -64,7 +65,8 @@ module SearchService
         # https://www.elastic.co/guide/en/elasticsearch/guide/current/pagination.html
         # Comeca pagina 0
         size: @search.results_per_page,
-        from: ((@search.page.to_i) * (@search.results_per_page.to_i)).to_s
+        from: ((@search.page.to_i) * (@search.results_per_page.to_i)).to_s,
+        sort: order_hash
     }
     end
 
diff --git a/app/services/search_service/user.rb b/app/services/search_service/user.rb
index ea8ef836da2db171ffc9327f8afe79f82bc8acde..03898bdc3ac84c6c30bbc046843abb86b34deb45 100644
--- a/app/services/search_service/user.rb
+++ b/app/services/search_service/user.rb
@@ -20,7 +20,7 @@ module SearchService
 
     def order_hash
       return { name: { order: :asc, unmapped_type: :string } } if @search.order == 'title'
-      nil
+      "_score"
     end
   end
 end
diff --git a/config/routes.rb b/config/routes.rb
index df4dbc69e123122d8a2d473e6402c455aeb2d470..2ef9a747bce42a72c79b623e5ba1d374077703ee 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -13,6 +13,7 @@ Rails.application.routes.draw do
     member do
       post 'follow', as: :follow, action: :follow
       delete 'follow', as: :unfollow, action: :unfollow
+      put 'follow', as: :follow_toggle, action: :follow_toggle
     end
   end
 
diff --git a/spec/acceptance/learning_objects_spec.rb b/spec/acceptance/learning_objects_spec.rb
index 02bbc1c7182425cb2a8d3e53b4fc7bfdc6edd573..13a8a4f2019d4e938d9b0ef9621b6bd70185530c 100644
--- a/spec/acceptance/learning_objects_spec.rb
+++ b/spec/acceptance/learning_objects_spec.rb
@@ -54,9 +54,13 @@ resource 'Learning Objects' do
     parameter :object_type_id, 'The id of object type', scope: :learning_object
     parameter :language_id, 'The id of a language', scope: :learning_object
     parameter :license_id, 'The id of a license', scope: :learning_object
+    parameter :curator, 'The name of curator', scope: :learning_object
+    parameter :thumbnail, 'The learning_object thumbnail', scope: :learning_object
 
     let(:author) { Faker::Name.name }
     let(:name) { Faker::Name.name }
+    let(:curator) { Faker::Name.name }
+    let(:thumbnail) { Faker::Avatar.image }
     let(:description) { Faker::Lorem.paragraph }
     let(:object_type_id) { object_types.first.id }
     let(:language_id) { languages.first.id }
diff --git a/spec/acceptance/searches_spec.rb b/spec/acceptance/searches_spec.rb
index 08d7a25020fc14693643e86571608449b1554928..967a2cab98dd32f5630475d6f4430422e09e4f1a 100644
--- a/spec/acceptance/searches_spec.rb
+++ b/spec/acceptance/searches_spec.rb
@@ -5,7 +5,7 @@ resource 'Searches' do
   explanation "Search is a query for Learning Objects, Collections or Users."
 
   before { 12.times { create(:learning_object); LearningObject.reindex } }
-      
+
   get '/v1/search' do
 
     parameter :page, 'Results page number'
@@ -19,9 +19,9 @@ resource 'Searches' do
     parameter :types, 'Filter the search by Learning Object object types, array of ids. Example: object_types[]=1&object_types[]=2'
 
 
-    let(:page) { 1 }
+    let(:page) { 0 }
     let(:results_per_page) { 12 }
-    let(:order) { "score" }
+    let(:order) { "_score" }
     let(:query) { "*" }
     let(:search_class) { "LearningObject" }
 
@@ -49,10 +49,6 @@ resource 'Searches' do
       do_request
       expect(status).to eq(200)
     end
-
-    
-
-
   end