diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index fc5b65cbec45d03000e06ed7ff3fc3ba1d7e05d6..d9f64845efa5edc4960a1a935779904d62794cda 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,4 +1,4 @@
-image: ruby:2.3.1
+image: ruby:2.3.8
 
 services:
   - postgres:9.5
diff --git a/app/controllers/v1/search_controller.rb b/app/controllers/v1/search_controller.rb
index 3626334eb54386a5d7bd6132290deadfff39f929..b72e3b49b3a171335968309937be8efc42fcc447 100644
--- a/app/controllers/v1/search_controller.rb
+++ b/app/controllers/v1/search_controller.rb
@@ -66,7 +66,7 @@ class V1::SearchController < ApplicationController
   def search_params
     original_params = params
     params = ActionController::Parameters.new({"search"=>original_params.except(:controller, :action).to_unsafe_h()})
-    params.require(:search).permit(:page, :results_per_page, :order, :query, :search_class, tags: [], subjects: [], educational_stages: [], object_types: [], languages: [])
+    params.require(:search).permit(:page, :results_per_page, :order, :query, :search_class, tags: [], subjects: [], educational_stages: [], object_types: [], languages: [], and_fields: [])
   end
 
   def tag_search_params
diff --git a/app/models/search.rb b/app/models/search.rb
index 727db240a61e45caf39f4e3fb9e2db0d576e9e2a..36fe471cc9049fa47ca90d5a588f0fec3cfa3f9e 100644
--- a/app/models/search.rb
+++ b/app/models/search.rb
@@ -18,7 +18,7 @@
 # along with portalmec.  If not, see <http://www.gnu.org/licenses/>.
 
 class Search < ApplicationRecord
-  attr_accessor :page, :results_per_page, :order, :tags
+  attr_accessor :page, :results_per_page, :order, :tags, :and_fields
 
   belongs_to :user
   has_and_belongs_to_many :tags
@@ -57,7 +57,8 @@ class Search < ApplicationRecord
       query: '*',
       order: 'score',
       page: 0,
-      results_per_page: 10
+      results_per_page: 10,
+      and_fields: []
     }.select { |key, _value| !params.key?(key) }
   end
 end
diff --git a/app/services/search_service/learning_object.rb b/app/services/search_service/learning_object.rb
index 57171773fa067f85ae30b3b8f4803c5e27196fac..019b99c47cbed892322678811484d8fef48a06ee 100644
--- a/app/services/search_service/learning_object.rb
+++ b/app/services/search_service/learning_object.rb
@@ -46,7 +46,13 @@ module SearchService
       filter << { terms: { subjects: @search.subjects } } unless @search.subjects.blank?
       filter << { terms: { educational_stages: @search.educational_stages } } unless @search.educational_stages.blank?
       filter << { terms: { object_type: @search.object_types.map(&:to_i) } } unless @search.object_types.blank?
-      filter << { terms: { languages: @search.languages } } unless @search.languages.blank?
+      if (@search.and_fields).include? 'languages'
+        (@search.languages).each do |language|
+          filter << { terms: { languages: Array(language) } }
+        end
+      else
+          filter << { terms: { languages: @search.languages } } unless @search.languages.blank?
+      end
       filter << { terms: { state: validate_object } }
       filter
     end