Monday, July 28, 2014

Issues with thinking sphinx

I recently faced some issues with thinking sphinx which sharing here so that it helps others.

Has many association not working:

I had a model named User which has many tracks and the very basic index definition is as follows:
ThinkingSphinx::Index.define :track, :with => :active_record do
  indexes title
  indexes [artist.first_name, artist.last_name], :as => :artist_name, :sortable => true
end
I was getting following error when run
rake ts:index
rake aborted!
NoMethodError: undefined method `_reflect_on_association' for #

Adding joiner gen to the Gemfile resolved my issues which I've got through the thinking-sphinx repository
gem 'joiner', '0.3.1'

Sphinx Guard file for index {model}_delta exists, not indexing: Removing ts-{model}_delta.tmp from db/sphinx directory resolved the issue.

Failed to start searchd daemon - 127.0.0.1: Address already in use: It means somehow the process is running anywhere, nothing to do with Thinking Sphinx.

A workaround is to use a other than default port 9312 and 9306 and start/stop the server
sudo service sphinxsearch stop

Check for processes running and kill all existing:
ps -ef | fgrep searchd
killall searchd

Find that your process is being run by root, then it will keep respawning if it is set as a service. You can edit nano /etc/default/sphinxsearch and modify it from START=yes to START=no

No comments:

Post a Comment