我正在编写一个使用 Datamapper 作为 ORM 的 Rails 3 应用程序。我正在考虑使用 ElasticSearch 进行搜索,但不能使用 Tire gem,因为它似乎依赖于 ActiveRecord。
我正在使用 RestClient 向 ElasticSearch 提交请求,但无法解析 ruby 中的响应。
如果我提交一个 GET 请求“ http://localhost:9200/twitter/tweet/2
”,我会在浏览器中得到以下信息:
{
"_index": "twitter",
"_type": "tweet",
"_id": "2",
"_version": 3,
"exists": true,
"_source": {
"user": "kimchy",
"post_date": "2009-11-15T14:12:12",
"message": "kimchy kimchy says"
}
}
在 Rails 中,当我键入以下内容时:
response = RestClient.get 'http://localhost:9200/twitter/tweet/2',{:content_type => :json, :accept => :json}
我得到这个结果:
{
"_index": "twitter",
"_type": "tweet",
"_id": "2",
"_version": 3,
"exists": true,
"_source": {
"user": "kimchy",
"post_date": "2009-11-15T14:12:12",
"message": "kimchy kimchy says"
}
}
这看起来有点正确,但我无法像通常使用 JSON 那样使用点表示法获取数据。
例如,我不能写response._type
,因为我得到一个未定义的方法错误。
非常感谢您对此的任何帮助!