【发布时间】:2013-06-26 07:25:23
【问题描述】:
在我的 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
- 使用嵌套文档。我的搜索查询返回已过滤的学生以及所有未过滤的作业,我不确定如何在搜索结果中过滤儿童。
我希望得到有关如何将这些模型映射到 elasticsearch 并有效执行查询的建议。
不要求一个完整的解决方案,只是一个大致的方向感。我应该使用嵌套对象吗?将学生的属性存储在作业中并使用构面进行分组?
提前致谢!
【问题讨论】:
标签: elasticsearch tire