Rails优雅地存储文本的元数据

时间:2014-10-17 05:11:03

标签: ruby-on-rails ruby-on-rails-4

我的应用程序有数千(可能是数百万?)的模型,让我们称它们为段落,其中包含文本。该文本的主要用途是将其显示在网页上。有时,由于各种其他原因,也会搜索该文本。

其中一些段落中的某些词语具有相关的元数据,例如格式,超链接或其他对前端javascript有意义的数据属性。

现在,我只是将最终的html标签直接插入到文本中,因此它最终会像这样存储:

<strong>Jimmy</strong> is walking his <a href="somewhere">dog</a> which is <span class="something" data-metadata_id="2343">brown</span>.

这对于显示文本的主要目的很有效,但是当我想搜索我的文本或对其进行其他处理时,它非常难看。有没有更好的办法?是否有处理此类事情的宝石?

1 个答案:

答案 0 :(得分:0)

将两个版本放在数据库中是有意义的:显示一个和索引一个。磁盘很便宜。特别是如果您正在使用Solr或类似的(如果您正在进行字符串搜索,则非常推荐),您可以存储(但不能索引)HTML,并将纯文本版本索引(但不能存储)为两个同一记录的不同领域。