1
class Job
  field :occupation, :type => String
  field :experience, :type => String
end

在我的 api 文件中:

get :searches do
  Cv.search({query: "*#{params[:q]}*"}).map{ |cv| {id: cv.id, text: cv.occupation } }
end

这会生成一个 json 文件:

[{"id":"513dbb61a61654a845000005","text":"industrial engineer"},{"id":"513a11d4a6165411b2000008","text":"javascript engineer"}]

我使用 mongodb 作为数据库,使用 mongoid 作为 orm/odm。

这适用于 10 或 100 或 1000 个结果,但我的问题是是否可以针对大型数据集合优化 api 查询 * 1.000.0002.000.000个结果。*

4

1 回答 1

0

根据您的查询,如果您想查询,occupation您需要创建一个索引occupation

class Job
  include Mongoid::Document
  field :occupation, :type => String
  field :experience, :type => String
  index({ occupation: 1 })
end

Mongoid 会自动创建和索引,_id因此如果您始终在查询中包含它,它将保持快速,除非您的数据库索引开始超过可用内存。

Job.where(:occupation => "javascript engineer")将使用索引

于 2013-03-15T19:38:15.897 回答