Hi Robert Sorry you've had to do all this debugging on your own - but great to know you've found the cause.
I think this is actually a Rails/ActiveRecord bug, not a Thinking Sphinx bug (I've had someone raise it before) - as TS uses ActiveRecord to generate the joins in the sql_query. So, I'm not sure if it's been fixed, but if you're not using 2.3.8, perhaps it's worth upgrading - at least temporarily - to check? Otherwise, I think manually editing the config and then using the ts:reindex task (to avoid config regeneration) is the only approach. -- Pat On 07/07/2010, at 4:02 AM, rbjarnason wrote: > I can confirm that the problem I've been facing is that > the :primary_key column seems to be ignored when building the > association SQL. I have a good reason for using both id and uid > columns but in my test rig they have similar values causing this > unexpected behaviour. > > or this definition: > > belongs_to :project, :primary_key=>"uid", :foreign_key=>"project_uid" > > This is generated: > LEFT OUTER JOIN `projects` ON `projects`.id = > `project_documents`.project_uid > > Instead of: > LEFT OUTER JOIN `projects` ON `projects`.uid = > `project_documents`.project_uid > > I can edit the config by hand, but is there any easy way around this > in the code? > > Warm regards, > Robert > > On Jul 6, 7:37 pm, rbjarnason <[email protected]> wrote: >> Hi, >> >> I think I've found the problem, its due to the construction of the SQL >> query, I'm using :primary_key and :foreign_key in the association and >> those don't seem to be picked up correctly in all places. >> >> Will post more detail later when I've confirmed that this is the >> problem. >> >> Warm regards, >> Robert >> >> On Jul 6, 6:22 pm, rbjarnason <[email protected]> wrote: >> >> >> >>> Hi, >> >>> I'm still trying to work out this problem. >> >>> I've added debug traces all over, and I have found something >>> interesting in the method add_from_results in facet_search.rb >> >>> After: "results.each_with_groupby_and_count { |result, group, count|" >>> I do: >>> RAILS_DEFAULT_LOGGER.debug("TS: facet_value #{facet_value} result >>> #{result} group #{group} count #{count}") >> >>> For the two Facets that do not show up as expected when searching the >>> group value is 0 while the count is 39 is both places. The group >>> value has a large number for all the working Facets. >> >>> Any idea what a group value of 0 could signify in this context? >> >>> I also confirmed that the Facet search is converting the name of the >>> product to a crc32 value to do the Facet.for search and that all looks >>> normal compared to the Facet.for that work. >> >>> Warm regards, >>> Robert >> >>> On Jun 30, 4:40 pm, rbjarnason <[email protected]> wrote: >> >>>> Hi, >> >>>> I've got a strange problem when using Facets. It reports one facet >>>> result having, in this example, 39 items but when I use @facets.for it >>>> returns an empty array. There are about 20 other facets reported in >>>> this category and they all work as expected with @facets.for, its only >>>> the facet that has the largest number reported that does not return >>>> anything. I can see the items that fit into the category in the main >>>> search results list so the data is there. >> >>>> Here is the code I use: >>>> @facets = ThinkingSphinx.facets params[:search], :all_facets => >>>> true, :class_facet => false, :page => params[:page], :order >>>> => :created_at, :sort_mode >>>> => :desc, :with=>{:search_access_tag=>@search_access_tags << 0} >> >>>> And the html: >>>> <% @facets.each do |facet, facet_options| %> >>>> <h3><%= facet.to_s[0..facet.to_s.length-6].humanize.titleize.pluralize >>>> %></h3> >>>> <ul> >>>> <% facet_options.each do |option, count| %> >>>> <% next if option==nil or option=="" %> >>>> <li><%= link_to "#{option} (#{count})", :params => {facet >>>> => >>>> option, :search=>params[:search], :page => 1} %></li> >>>> <% end %> >>>> </ul> >>>> <% end %> >> >>>> And then when you click on one of the links it takes you to >>>> if params[:project_category_name] >>>> @search_results = >>>> @facets.for(:project_category_name=>params[:project_category_name].to_s) >>>> end >> >>>> What is the best approach in debugging this inconsistency in what is >>>> reported from the main facets call and the @facets.for returns? Are >>>> there any known issues when using :all_facets? >> >>>> Warm regards, >>>> Robert > > -- > 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. > -- 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.
