0

Railsアプリケーションでは、スキーマのないオブジェクト(JSONデータ構造)を格納できるようにしたいと考えています。JSONデータ構造は、オブジェクトごとに、または同じオブジェクトに対して異なる時間に異なる構造を持つ可能性があります。

ElasticSearchを使用すると、これを行うことができます。ただし、これにはRailsで何らかのORMを使用したいと思います。

Railsコンソールでこれを実行して、Tireチュートリアルでいくつかのテストを実行しようとしました:

>>> c = Article.new :title =>'New article', :content => { :a => 'a', :b => 'b'}

シリアル化されたYAMLとして保存されたコンテンツデータを確認できます。

>> Article.last.content
=> "---\n:a: a\n:b: b\n"

これには、検索結果をJSONに解析する必要がありますが、これは問題ではありません。しかし、主な質問:シリアル化されたデータの内部を検索できますか?任意の構造化データ(Object.keysなど)から属性名を返す方法はありますか?

タイヤでない場合、これを行うための他の解決策はありますか?

4

1 に答える 1

1

ここまで何をしているのかよくわかりませんが、Tireにはinclude Tire::Model::Persistence、クラス内でActiveRecord統合の代わりとなるドロップインが付属しています。プロパティを定義することもできます(マッピング、型キャスト、デフォルト値など)。

class Article

  include Tire::Model::Persistence

  property :title
  property :published_on, type: 'date'
  property :tags,         analyzer: 'keyword', default: []

end

TireREADMEと統合テストにはすべての情報があります。

もちろん、content属性内を検索することもできます。これは、適切なマッピングの問題です。

特定の行動をとっている場合は、質問を更新してください...

于 2012-07-23T11:25:28.510 に答える