Datamapper を ORM として使用して Rails 3 アプリケーションを作成しています。検索にElasticSearchを使用することを検討していますが、ActiveRecordに依存しているように見えるため、Tire gemを使用できません。
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
、未定義のメソッド エラーが発生して記述できません。
これについて何か助けていただければ幸いです。