一尘不染

如何通过Elasticsearch和Tire防止附件存储在_source中?

elasticsearch

我有一些使用Tyre
gem在Elasticsearch中建立索引的PDF附件。一切都很好,但是我将拥有许多GB的PDF,我们可能会将PDF存储在S3中以进行访问。现在,base64编码的PDF存储在Elasticsearch
_source中,这将使索引很大。我想对附件建立索引,但不进行存储,并且我还没有弄清楚正确的方法可以放入Tire的“映射”块中以防止它出现。现在的代码块是这样的:

mapping do
  indexes :id, :type => 'integer'
  indexes :title
  indexes :last_update, :type => 'date'
  indexes :attachment, :type => 'attachment'
end

我尝试了一些变化,例如:

indexes :attachment, :type => 'attachment', :_source => { :enabled => false }

当我运行tire:import rake任务时,它看起来不错,但似乎没有什么不同。有人知道A)是否可行?B)怎么做?

提前致谢。


阅读 237

收藏
2020-06-22

共1个答案

一尘不染

_source字段设置包含什么应该从源头上排除字段列表。我猜想如果是轮胎,应该这样做:

mapping :_source => { :excludes => ['attachment'] } do
  indexes :id, :type => 'integer'
  indexes :title
  indexes :last_update, :type => 'date'
  indexes :attachment, :type => 'attachment'
end
2020-06-22