繁体   English   中英

如何使用Elasticsearch红宝石gem创建Ruby on Rails 4.1应用程序

[英]How to create a Ruby on Rails 4.1 application with Elasticsearch ruby gems

我对Ruby on Rails和Elasticsearch都不熟悉。 我正在寻找一些有用的信息,以帮助我在要开发的应用程序中实现Elasticsearch的精髓。

应用程序需要能够理想地使用Ajax搜索和过滤结果。 我已经阅读了关于gem的README指南,文档和示例,但是有些零碎的内容我无法弄清,或者无法确定我是否采用了正确的方法。

我在索引中创建了结果,也有结果出来了。 我的主要重点是使聚合,过滤器和构面正常工作,这些的标准约定是什么?

我正在寻找一些有关从正确的角度进行操作的信息。

我要实现的一件事是,有一个名为date date的选择框其中有两个选项:

  • 任何时候
  • 今天(20)
  • 最近三天(50)
  • 上周(100)

代表该方面内文档数量的数字? 还是聚合或过滤器? -不确定哪种是最好的。

我还希望数字根据可能存在的其他过滤选项(即查询)进行更新。

这是一些代码:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM