Wehn I run rake ts:rebuild, with 'has created_at, updated_at, show' I get: Cannot automatically map attribute show in Project to an equivalent Sphinx type (integer, float, boolean, datetime, string as ordinal). You could try to explicitly convert the column's value in your define_index block: has "CAST(column AS INT)", :type => :integer, :as => :column
Show column in a MySql tinyint(1) On Mar 4, 3:19 pm, rtacconi <[email protected]> wrote: > I really do not know how to remove the error. Why Sphinx does not find > 'show' field? > > On Mar 4, 10:54 am, rtacconi <[email protected]> wrote: > > > It happens in my mac too, when I am logged out, because it > > includes :show => true in the conditions (see controller's code) > > > On Mar 4, 10:51 am, rtacconi <[email protected]> wrote: > > > > Hi Pat, > > > > my new search without SQL: > > > > conditions = (current_user && current_user.is_power? ? {} : {:show > > > => true}) > > > conditions["project_type"] = params[:type] if > > > params[:type].present? > > > conditions["climate_zone"] = params[:climate] if > > > params[:climate].present? > > > @projects = Project.search(params[:search], :page => > > > params[:page], :per_page => 8, > > > :conditions => conditions, > > > :sort_mode => :extended, > > > :order => "updated_at DESC, created_at > > > DESC") > > > @map_projects = @projects.reject {|a| a.lat.blank? || > > > a.lng.blank? } > > > @total = @projects.total_entries > > > > You will see the show property again, I need it to hide hidden > > > projects to normal users. Show field is in my index (from app/model/ > > > Project.rb: > > > > indexes name > > > indexes summary > > > indexes description > > > indexes phone > > > indexes email > > > indexes website > > > indexes climate_zone > > > indexes city > > > indexes address > > > indexes state > > > indexes post_code > > > indexes country > > > indexes project_type > > > > has created_at, updated_at, show > > > > indexes posts.created_at, :as => :posts > > > set_property :delta => true > > > > Show is a tinyint(1), I am using MySql. In my mac everything is ok but > > > in production I get 'Production: ThinkingSphinx::SphinxError: index > > > user_core,user_delta: query error: no field 'show' found in schema'. > > > Yes I run the rake task, CApistrano daes it at every deployment, but I > > > tried even manually. I always get that error. > > > > Any thoughts? > > > > On Mar 4, 1:12 am, Pat Allan <[email protected]> wrote: > > > > > Have you run 'rake ts:rebuild' on production? And where in your code is > > > > the search happening that's causing the error? The same place? > > > > > -- > > > > Pat > > > > > On 04/03/2011, at 6:11 AM, rtacconi wrote: > > > > > > Actually I figured that out later and I am re-writing the search. Now > > > > > it is working, but when I deploy in production I still get the error > > > > > that show field is not found in shema, but is is in the shema nd in > > > > > the indexes. I re-executed the indexer in production but still the > > > > > same damn error > > > > > > On Mar 3, 12:45 pm, Pat Allan <[email protected]> wrote: > > > > >> Ah, I see... it goes into both SQL, or Sphinx - so if you still want > > > > >> it to apply to SQL, move it within the else block :) > > > > > >> -- > > > > >> Pat > > > > > >> On 03/03/2011, at 10:42 PM, rtacconi wrote: > > > > > >>> oh god I though it was SQL instead is going into Shpinx's query. > > > > > >>> Thanks a lot > > > > > >>> On Mar 3, 12:30 pm, Pat Allan <[email protected]> wrote: > > > > >>>> It's because of the first line in your index action: > > > > > >>>>> conditions = (current_user && current_user.is_power? ? {} : {:show > > > > >>>>> => true}) > > > > > >>>> If a user is logged in and has power, then it adds :show => true > > > > >>>> to the conditions. Perhaps you want to remove that line? > > > > > >>>> -- > > > > >>>> Pat > > > > > >>>> On 03/03/2011, at 10:24 PM, rtacconi wrote: > > > > > >>>>> Hi, > > > > > >>>>> I have this code (developed by someone else: > > > > > >>>>> def index > > > > >>>>> conditions = (current_user && current_user.is_power? ? {} : > > > > >>>>> {:show > > > > >>>>> => true}) > > > > >>>>> if params[:search] > > > > >>>>> conditions = conditions.merge({:home_climate_zones => > > > > >>>>> params[:climate_zone]}) if params[:climate_zone].present? > > > > >>>>> @users = User.search(params[:search] || "", :conditions => > > > > >>>>> conditions ) > > > > >>>>> @users = @users.select {|u| u.has_user_type?(params[:type])} > > > > >>>>> if > > > > >>>>> params[:type].present? > > > > >>>>> @total = @users.size > > > > >>>>> @users = @users.sort_by {|e| [e.posts.last.try(:created_at) > > > > >>>>> || > > > > >>>>> 10.years.ago] }.reverse > > > > >>>>> @users = @users.paginate(:per_page => 9, :page => > > > > >>>>> params[:page] > > > > >>>>> || 1) > > > > >>>>> else > > > > >>>>> @users = User.paginate(:conditions => conditions, :per_page > > > > >>>>> => > > > > >>>>> 9, :page => params[:page], :include => :posts, :order => > > > > >>>>> "posts.created_at DESC, users.created_at DESC") # Not you! > > > > >>>>> @total = User.count > > > > >>>>> end > > > > >>>>> @featured = User.featured > > > > >>>>> @map_users = User.with_lat_lng.all(:select => 'id, lat, > > > > >>>>> lng', :include => :posts, :order => "posts.created_at DESC") > > > > >>>>> end > > > > > >>>>> The output of the rebuild: > > > > > >>>>> indexing index 'project_core'... > > > > >>>>> collected 234 docs, 0.9 MB > > > > >>>>> sorted 0.1 Mhits, 100.0% done > > > > >>>>> total 234 docs, 870847 bytes > > > > >>>>> total 0.454 sec, 1917016 bytes/sec, 515.10 docs/sec > > > > >>>>> indexing index 'project_delta'... > > > > >>>>> collected 0 docs, 0.0 MB > > > > >>>>> total 0 docs, 0 bytes > > > > >>>>> total 0.011 sec, 0 bytes/sec, 0.00 docs/sec > > > > >>>>> distributed index 'project' can not be directly indexed; skipping. > > > > >>>>> indexing index 'user_core'... > > > > >>>>> collected 722 docs, 0.0 MB > > > > >>>>> sorted 0.0 Mhits, 100.0% done > > > > >>>>> total 722 docs, 26907 bytes > > > > >>>>> total 0.036 sec, 727570 bytes/sec, 19523.01 docs/sec > > > > >>>>> distributed index 'user' can not be directly indexed; skipping. > > > > >>>>> total 10 reads, 0.002 sec, 50.8 kb/call avg, 0.2 msec/call avg > > > > >>>>> total 21 writes, 0.001 sec, 55.9 kb/call avg, 0.0 msec/call avg > > > > >>>>> Started successfully (pid 3304). > > > > > >>>>> I want to mention the show is a user field but it is a reserved > > > > >>>>> word > > > > >>>>> in Mysql. I have been thinking to rename it, but I still do not > > > > >>>>> understand why Shinx is 'interested' in the show field. > > > > > >>>>> On Mar 3, 12:19 pm, Pat Allan <[email protected]> wrote: > > > > >>>>>> What is your search query? And what's the output when you run > > > > >>>>>> ts:rebuild? > > > > > >>>>>> -- > > > > >>>>>> Pat > > > > > >>>>>> On 03/03/2011, at 10:08 PM, rtacconi wrote: > > > > > >>>>>>> I the Usr model I have the following index > > > > > >>>>>>> define_index do > > > > >>>>>>> indexes first_name, :sortable => true > > > > >>>>>>> indexes last_name, :sortable => true > > > > >>>>>>> indexes city > > > > >>>>>>> indexes state > > > > >>>>>>> indexes country > > > > >>>>>>> # indexes aid_work > > > > >>>>>>> # indexes consultant > > > > >>>>>>> # indexes home_climate_zones > > > > >>>>>>> # indexes pdc_teacher > > > > >>>>>>> # has show > > > > > >>>>>>> set_property :delta => true > > > > > >>>>>>> # indexes posts.created_at, :as => :posts > > > > >>>>>>> end > > > > > >>>>>>> I am getting this error: > > > > > >>>>>>> index user_core,user_delta: query error: no field 'show' found > > > > >>>>>>> in > > > > >>>>>>> schema > > > > > >>>>>>> I rebuild the index but still getting that error. Any idea why? > > > > > >>>>>>> -- > > > > >>>>>>> You received this message because you are subscribed to the > > > > >>>>>>> Google Groups "Thinking Sphinx" group. > > > > >>>>>>> To post to this group, send email to > > > > >>>>>>> [email protected]. > > > > >>>>>>> To unsubscribe from this group, send email to > > > > >>>>>>> [email protected]. > > > > >>>>>>> For more options, visit this group > > > > >>>>>>> athttp://groups.google.com/group/thinking-sphinx?hl=en. > > > > > >>>>> -- > > > > >>>>> You received this message because you are subscribed to the > > > > >>>>> Google Groups "Thinking Sphinx" group. > > > > >>>>> To post to this group, send email to > > > > >>>>> [email protected]. > > > > >>>>> To unsubscribe from this group, send email to > > > > >>>>> [email protected]. > > > > >>>>> For more options, visit this group > > > > >>>>> athttp://groups.google.com/group/thinking-sphinx?hl=en. > > > > > >>> -- > > > > >>> You received this message because you are subscribed to the Google > > > > >>> Groups "Thinking Sphinx" group. > > > > >>> To post to this group, send email to > > > > >>> [email protected]. > > > > >>> To unsubscribe from this group, send email to > > > > >>> [email protected]. > > > > >>> For more options, visit this group > > > > >>> athttp://groups.google.com/group/thinking-sphinx?hl=en. > > > > > > -- > > > > > You received this message because you are subscribed to the Google > > > > > Groups "Thinking Sphinx" group. > > > > > To post to this group, send email to [email protected]. > > > > > To unsubscribe from this group, send email to > > > > > [email protected]. > > > > > For more options, visit this group > > > > > athttp://groups.google.com/group/thinking-sphinx?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Thinking Sphinx" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/thinking-sphinx?hl=en.
