Đang cố gắng sử dụng Nhân sư tư duy để tìm kiếm. Tiếp theo this Railscast bởi TS cài đặt homebrew và MySQL (mặc dù tôi đang sử dụng pg trong ứng dụng của tôi, nó dường như bắt buộc), thêm những dòng này để gemfile tôi:Tư duy Nhân sư - không tìm thấy chỉ mục nào trong tệp cấu hình
gem 'mysql2'
gem 'thinking-sphinx'
và đưa những điều sau đây trong mô hình của tôi, bên dưới mọi thứ khác
post.rb
class Post < ActiveRecord::Base
#...
define_index do
indexes content
indexes :name
end
end
Sau đó, tôi đi vào nhà ga và thử ts cào: chỉ số, nhưng tôi nhận được lỗi này:
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 và không tìm thấy nội dung nào được trả lời đúng. Tôi đã thử chạy rake ts: cấu hình (mà không phàn nàn) và sau đó rake ts: index, nhưng nó không hoạt động.
Một số nền: Tôi vừa thay đổi vỏ thiết bị đầu cuối của mình (sử dụng zsh), điều này đã tạo ra tất cả các thay đổi bất ngờ lạ thường. Tôi đã phải cài đặt lại bundler, sau đó re-bundle cài đặt tất cả các đá quý của tôi, sau đó độc lập đá quý cài đặt rake. Sau đó, tôi gói cập nhật cho biện pháp tốt. Bây giờ rake dường như làm việc, nhưng tôi vẫn nhận được lỗi.
Các cấu hình tập tin lỗi được phàn nàn về:
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
}
Bất cứ ý tưởng gì đang xảy ra/những gì mã câu trả lời có thể là trong?
THÚ VỊ CẬP NHẬT - Tôi làm theo các Q & A trên this Google Group nhập đường ray giao diện điều khiển của tôi và gõ "Post.sphinx_indexes.length", nhưng tôi đã nhận lỗi rất khác nhau này lại. Có vẻ như mô hình của tôi bằng cách nào đó không nhận được quyền truy cập vào đá quý?
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>
Cảm ơn Jerome ... chính xác những gì tôi đã làm — chỉ số sai chính tả. – backwardm
Một trường hợp số nhiều là, tôi tin rằng, đã xác định sai. Các chỉ mục sẽ dẫn đến ít lỗi hơn và là rails-ish. – Jerome
Tôi đã đi với 'chỉ số' vì 'chỉ mục' cũng là hành động lập chỉ mục (xử lý các chỉ mục) và tôi muốn tránh nhầm lẫn. Do đó, tôi cố gắng sử dụng các chỉ số như số nhiều của chỉ mục bất cứ khi nào có thể. – pat