【问题标题】:Connect Rails app to Elasticsearch server将 Rails 应用程序连接到 Elasticsearch 服务器
【发布时间】:2015-10-10 21:26:15
【问题描述】:

我正在使用 logstash+elasticsearch 来索引服务器日志。 Elasticsearch 服务器在 localhost:9200 运行,拥有数百万个服务器日志文档。 我还有一个在 localhost:3000 运行的 Rails 应用程序。我需要将此 rails 应用程序连接到 ES 服务器。

我已经阅读了有关“elasticsearch-rails”gem 的信息,但我在任何地方都使用 ActiveRecords/Models 找到了它们。但是,我认为这不需要 ActiveRecords。我只需要一种方法来查询 ES 服务器索引并在我的 Rails 应用程序中获取文档。

有没有办法做到这一点?任何人都可以帮我解决这种情况吗?如果我的问题不清楚,请发表评论。

提前致谢。

【问题讨论】:

    标签: ruby elasticsearch client elasticsearch-rails elasticsearch-ruby


    【解决方案1】:

    目前有许多解决方案,但其中最突出的是(例如)Stretcher,它提供了一个非常简单的 API,与 Elasticsearch API 非常匹配。

    例如:

    server = Stretcher::Server.new('http://localhost:9200')
    res = server.index(:myindex).search(size: 10, query: {match_all: {}})
    
    # res is of type Stretcher::SearchResults
    res.total     # => 10
    res.documents # => [#<Hashie::Mash _id="4" text="Hello 4">, ...]
    ...    
    

    【讨论】:

    • 感谢您的快速回复。我会调查的。
    • 再次感谢。但我只是有一个疑问。我可以在我拥有的场景中实际使用 elasticsearch-rails gem 吗?我正在考虑它,因为它支持正确的分页,并且有助于在我的 rails 应用程序中查看。如果我走错路,请指导我。我的问题可能听起来很傻,但我真的很想学习这个,而且我对这些东西很陌生!
    猜你喜欢
    • 1970-01-01
    • 2019-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 2012-09-19
    • 2014-07-26
    • 2018-01-25
    相关资源
    最近更新 更多