将Rails应用程序连接到Elasticsearch服务器

时间:2015-07-21 12:17:26

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

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

我已经读过" elasticsearch-rails"宝石,但无处不在,我发现他们使用ActiveRecords / Models。但是,我不认为ActiveRecords是必需的。我只需要一种方法来查询ES服务器索引并获取我的Rails应用程序中的文档。

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

有许多解决方案,但最突出的是(例如)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">, ...]
...