[英]How to create a Ruby on Rails 4.1 application with Elasticsearch ruby gems
我对Ruby on Rails和Elasticsearch都不熟悉。 我正在寻找一些有用的信息,以帮助我在要开发的应用程序中实现Elasticsearch的精髓。
应用程序需要能够理想地使用Ajax搜索和过滤结果。 我已经阅读了关于gem的README指南,文档和示例,但是有些零碎的内容我无法弄清,或者无法确定我是否采用了正确的方法。
我在索引中创建了结果,也有结果出来了。 我的主要重点是使聚合,过滤器和构面正常工作,这些的标准约定是什么?
我正在寻找一些有关从正确的角度进行操作的信息。
我要实现的一件事是,有一个名为date date的选择框,其中有两个选项:
代表该方面内文档数量的数字? 还是聚合或过滤器? -不确定哪种是最好的。
我还希望数字根据可能存在的其他过滤选项(即查询)进行更新。
这是一些代码:
models / concerns / searchable.rb(这包含在我的模型中)
def self.search(query, options={})
__set_filters = lambda do |key, f|
@search_definition[:filter][:and] ||= []
@search_definition[:filter][:and] |= [f]
@search_definition[:facets][key.to_sym][:facet_filter][:and] ||= []
@search_definition[:facets][key.to_sym][:facet_filter][:and] |= [f]
end
@search_definition = {
query: {},
filter: {}
}
unless query.blank?
@search_definition[:query] = {
bool: {
should: [
{
multi_match: {
query: query,
fields: ['title^10', 'content'],
operator: 'and'
}
}
]
}
}
else
@search_definition[:query] = { match_all: {} }
@search_definition[:sort] = { created_at: 'desc' }
end
if options[:offset]
f = {
numeric_range: {
created_at: {
gte: "now-5d"
}
}
}
end
__elasticsearch__.search(@search_definition)
end
Controller.rb
options = {
offset: params[:datecreatedoffset],
}
@jobs = Job.search(params[:q], options).results
respond_with @jobs
任何帮助都非常感谢。 谢谢。
从(re)tire
自述文件中:
注意:此库已在2013年9月重命名和淘汰(请阅读说明 )。 它不被认为与Elasticsearch 1.x兼容。
看看http://github.com/elasticsearch/elasticsearch-rails gems套件,其中包含与Tyre相似的ActiveModel / Record和Rails集成功能集。
从这里可以很容易地看到karmi(轮胎宝石的创建者建议您使用elasticsearch -rails宝石, karmi自己是活跃的并且维护着该宝石。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.