Rails4 + 黑子搜索

Rails4 + sunspot search

我正在尝试使用 sunspot solr 搜索 Rails 4 和 mysql。

我在我的模型中定义了一个可搜索块(例如 XYZ):

searchable do
  text :name, :stored => true
  string :id, :stored => true
end 

我只想在 "name" 中搜索。 "id" 是主键。 table 中还有许多其他列与此搜索无关,因此我没有将它们包含在可搜索块中。

现在,当我执行搜索时,例如 "go".. 它给出了我想要的结果。 但是,这一行显示在 log/console.

Completed 200 OK in 126ms (Views: 0.0ms | ActiveRecord: 11.0ms | Solr: 33.0ms)

我想完全删除活动的 record/db 命中。这就是我指定 :stored => true 的原因。但是数据库命中率仍然存在。它正在执行:

select XYZ.* from XYZ where XYZ.id in (list of the id's which satisfy the search criteria)

是否可以完全删除它并 sunspot:solr 仅在存储的索引中搜索并给出结果?

谢谢。

您如何访问结果?如果您正在调用 .results 方法,那么它将触发数据库查询。您应该迭代命中并获取 require 字段以避免数据库查询。