From d84ca25a0292cef85e42ab5120ec2b3ef4b28741 Mon Sep 17 00:00:00 2001 From: Israel Barreto Sant'Anna <ibsa14@inf.ufpr.br> Date: Wed, 9 Dec 2015 12:00:51 -0200 Subject: [PATCH] Fixed search query Signed-off-by: Israel Barreto Sant'Anna <ibsa14@inf.ufpr.br> --- app/services/search_service.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/services/search_service.rb b/app/services/search_service.rb index 85bf9913..edec0a6b 100644 --- a/app/services/search_service.rb +++ b/app/services/search_service.rb @@ -11,6 +11,7 @@ class SearchService # get results in cache or search Rails.cache.fetch(cache_key, expires_in: 10.minutes) do query = build_search_query params + p query @connection.query query, limit: 10000 end end @@ -28,9 +29,9 @@ class SearchService end def collection_query(params={}) - qry = "SELECT *, created_at as published_at, out('BelongsTo')[0].name as author FROM Collection WHERE privacy = 'public' " - qry += "AND (name LUCENE '#{params[:query]}' OR description LUCENE '#{params[:query]}')" unless params[:query].blank? - qry_filter = params[:query].blank? ? " WHERE " : " AND " + qry = "SELECT *, created_at as published_at, out('BelongsTo')[0].name as author FROM Collection" + qry += " WHERE name LUCENE '#{params[:query]}' OR description LUCENE '#{params[:query]}'" unless params[:query].blank? + qry = "SELECT FROM (#{qry}) WHERE privacy = 'public'" filter = collection_learning_objects_filter(params) qry += " AND "+filter unless filter.blank? qry @@ -39,15 +40,14 @@ class SearchService def learning_object_query(params={}) qry = "SELECT FROM LearningObject" qry +=" WHERE name LUCENE '#{params[:query]}' OR description LUCENE '#{params[:query]}' OR author LUCENE '#{params[:query]}'" unless params[:query].blank? - qry_filter = params[:query].blank? ? " WHERE " : " AND " filter = learning_object_filters(params) - qry += qry_filter+filter unless filter.blank? + qry = "SELECT FROM (#{qry}) WHERE "+filter unless filter.blank? qry end def collection_learning_objects_filter(params={}) qry = learning_object_filters(params) - qry = "learning_objects contains(#{qry})" unless qry.blank? + qry = "learning_objects CONTAINS (#{qry})" unless qry.blank? qry end @@ -60,7 +60,7 @@ class SearchService end qry += " AND ("+type_filter(params[:type])+")" unless params[:type].blank? qry += " AND ("+year_filter(params[:year])+")" unless params[:year].blank? - qry[3..-1] + qry[5..-1] end def subject_filter(subjects) -- GitLab