[英]reloading tire/elasticsearch mappings for a model that already has data stored
[英]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.