在我的 rails 项目中,我有两个模型:
class Student < ActiveRecord::Base
attr_accessible :name
has_many :homeworks
...
end
class Homework < ActiveRecord::Base
include Tire::Model::Search
include Tire::Model::Callbacks
attr_accessible :grade
belongs_to :student
...
end
我想在弹性搜索方面运行查询:
- 找出所有作业成绩至少为“F”的学生。
- 对学生进行排序
- 按作业评分为“F”
- 按名字
- 给学生分页
这个简化的例子可以在不使用elasticsearch的情况下解决,但是我正在处理的项目有一个需要elasticsearch的全文搜索功能。
我尝试了以下方法:
- 将父对象的属性存储在子对象中,并使用构面进行分组。这似乎可行,但我无法按此处所述对结果进行分页:http: //bit.ly/10hyYoS
- 使用嵌套文档。我的搜索查询返回过滤后的学生以及所有未过滤的作业,我不确定如何在搜索结果中过滤儿童。
我将不胜感激有关如何将这些模型映射到弹性搜索并有效执行查询的建议。
不要求一个完整的解决方案,只是一个一般的方向感。我应该使用嵌套对象吗?将学生的属性存储在作业中并使用构面进行分组?
提前致谢!