Essayez d'utiliser Thinking Sphinx pour la recherche. Suivi this Railscast en installant homebrew TS et MySQL (bien que j'utilise pg dans mon application, il est apparemment nécessaire), l'ajout de ces lignes à mon Gemfile:Sphinx pensant - aucun index trouvé dans le fichier de configuration
gem 'mysql2'
gem 'thinking-sphinx'
et mettre ce qui suit dans mon modèle, ci-dessous tout le reste
post.rb
class Post < ActiveRecord::Base
#...
define_index do
indexes content
indexes :name
end
end
Puis je vais dans le terminal et essayer râteau ts: index, mais je reçois cette erreur:
using config file '/Users/<personal>/rails_projects/<personal>/config/development.sphinx.conf'...
FATAL: no indexes found in config file '/Users/<personal>/rails_projects/<personal>/config/development.sphinx.conf'
Fishedaroundon the internet et rien trouvé qui a répondu à cette question. J'ai essayé d'exécuter rake ts: configure (qui ne se plaint pas), puis rake ts: index, mais cela ne fonctionne pas. Un peu d'arrière-plan: Je viens de changer mon shell de terminal (pour utiliser zsh), ce qui a fait toutes sortes de changements inattendus étranges. J'ai dû réinstaller bundler, puis ré-bundle installer tous mes gemmes, puis gem installer rake indépendamment. Ensuite, je bundle mis à jour pour une bonne mesure. Maintenant rake semble fonctionner, mais j'ai toujours l'erreur.
Le fichier config l'erreur gronde sur:
indexer
{
}
searchd
{
listen = 127.0.0.1:9306:mysql41
log = /Users/<personal>/rails_projects/<personal>/log/development.searchd.log
query_log = /Users/<personal>/rails_projects/<personal>/log/development.searchd.query.log
pid_file = /Users/<personal>/rails_projects/<personal>/log/development.sphinx.pid
workers = threads
binlog_path = /Users/<personal>/rails_projects/<personal>/tmp/binlog/development
}
Toutes les idées ce qui se passe/ce code, la réponse pourrait être?
Intéressante mise à jour - J'ai suivi le Q & A sur this Google Group pour entrer dans ma console de rails et tapez « Post.sphinx_indexes.length », mais je suis arrivé cette erreur très différente en retour. On dirait que mon modèle n'a pas accès à la gemme?
NoMethodError: undefined method `define_index' for #<Class:0x007f9c06c611b0>
from /Users/<personal>/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.11/lib/active_record/dynamic_matchers.rb:55:in `method_missing'
from /Users/<personal>/rails_projects/<personal>/app/models/post.rb:55:in `<class:Post>'
from /Users/<personal>/rails_projects/<personal>/app/models/post.rb:13:in `<top (required)>'
from /Users/<personal>/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:469:in `load'
from /Users/<personal>/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:469:in `block in load_file'
from /Users/<personal>/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:639:in `new_constants_in'
from /Users/<personal>/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:468:in `load_file'
from /Users/<personal>/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:353:in `require_or_load'
from /Users/<personal>/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:502:in `load_missing_constant'
from /Users/<personal>/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:192:in `block in const_missing'
from /Users/<personal>/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:190:in `each'
from /Users/<personal>/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:190:in `const_missing'
from (irb):1
from /Users/<personal>/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:47:in `start'
from /Users/<personal>/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:8:in `start'
from /Users/<personal>/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'irb(main):002:0>
Merci Jérôme ... exactement ce que j'ai fait-mal orthographié indices. – backwardm
Un cas où le pluriel est, je crois, mal défini. Les index conduiraient à moins d'erreurs et seraient rails-ish. – Jerome
Je suis allé avec 'indices' parce que 'index' est aussi l'action de l'indexation (traitement des indices), et je voulais éviter toute confusion. Par conséquent, j'essaie d'utiliser des indices comme le pluriel de l'index chaque fois que possible. – pat