1

我对 CouchRest 和 Sunspot 之间的集成有疑问。当我搜索这本书的详细信息时,Sunspot 的结果是空的。我尝试用谷歌搜索很长时间,但没有任何帮助。

Started GET "/books/search?utf8=%E2%9C%93&query=Book of Life&commit=Search%21" for 127.0.0.1 at 2011-09-08 11:27:41 +0700
Processing by BooksController#search as HTML
Parameters: {"utf8"=>"?", "query"=>"Book of Life", "commit"=>"Search!"}
Rendered books/index.html.erb within layouts/application (10.7ms)
Completed 200 OK in 145ms (Views: 20.6ms | ActiveRecord: 0.0ms)
[] <-- I got empty result

我的系统

  • 红宝石 1.9.2p290
  • 导轨 3.0.10
  • 沙发数据库 1.1.0

文件结构(https://gist.github.com/1164637/

  • 模型(/app/models/book_detail.rb)
  • 控制器(/app/controllers/books_controller.rb)
  • CouchRest 的 Sunspot 适配器 (/config/initializers/couchdb.rb)
  • 太阳黑子适配器模块 (/config/initializers/sunspot_couch.rb)

注意:对不起代码链接。我总是得到“请使用代码工具栏按钮将所有代码缩进 4 个空格”。我尝试删除所有选项卡并遵循 SO 代码格式指南,但它不再起作用。

4

1 回答 1

1

如果我遗漏了什么,请原谅我,但我看不到 Sunspot 是如何将“关键字”映射到 CouchRest 对象上的可搜索字段的。

要首先调试,我会在浏览器管理 UI 中访问 Couch,以确保我的那一端正常工作。然后我会仔细检查太阳黑子是否得到任何东西。如果 sunspot 包含您的记录,那么错误就在搜索端,如果它是空的,那么它注入到您的模型类中的对象生命周期管理代码可能有问题。

自从我做任何认真的 Ruby 以来已经有很多年了,希望我能提供更多帮助。一种选择是利用一些直接的 CouchDB 全文产品,例如 CouchDB Lucene:https ://github.com/rnewson/couchdb-lucene

于 2011-09-14T15:41:44.687 回答