簡體   English   中英

帶有Elasticsearch和Tire的靈活模型

[英]Flexible model with Elasticsearch and Tire

在Rails應用程序中,我希望能夠存儲無模式的對象-JSON數據結構,對象與對象之間的結構可能不同,或者同一對象在不同時間可能具有不同的結構。

使用ElasticSearch,我可以做到這一點。 但是我想為此使用某種ORM與Rails。

嘗試使用Tire教程進行一些測試,在Rails控制台中執行以下操作:

>>> 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)中返回屬性名稱?

如果不是Tyre,還有其他解決方案嗎?

不太確定您要做什么,但是Tire確實提供了ActiveRecord集成的直接替代品,只需在類中include Tire::Model::Persistence 您還可以定義屬性(具有映射,類型轉換,默認值等):

class Article

  include Tire::Model::Persistence

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

end

Tire README和集成測試包含所有信息。

當然,您可以在content屬性中進行搜索-只是適當的映射即可。

如果您要遵循某些特定的行為,請更新您的問題...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM