Elasticsearch rails - 无法搜索mac扩展

时间:2016-04-08 13:27:12

标签: ruby-on-rails elasticsearch

我使用' elasticsearch-model'设置了弹性搜索轨道,  ' elasticsearch-导轨'宝石。

我正在尝试按其内容搜索这些附件。当我有索引的PDF,Word,纯文本或许多其他格式时,它运行良好。但是当我索引mac格式时,它不起作用,例如.pages,.keynote和.numbers文件。

我确保将mac文件编入索引,但感觉它们没有正确编入索引。当我查看.word文件与.pages文件的原始索引数据时,它们都将各自的附件字段填充为文档内容的base64表示。然而,似乎对于mac扩展,这种base64表示并不准确。

我的索引模型定义:

settings index: { number_of_shards: 3 } do
 mappings do
   indexes :filename
   indexes :uploaded_by
   indexes :project_id, index: :not_analyzed
   indexes :attachment, type: 'attachment'
 end
end

def as_indexed_json(options={})
  self.as_json({
    only: [:project_id, :filename, :uploaded_by, :attachment],
    methods: [:attachment]
  })
end

我的附件方法:

def attachment
  if url
    key = url.sub("https://s3.amazonaws.com/#{ENV['BUCKETNAME']}/", "")
    content = AWS.s3.buckets[ENV['BUCKETNAME']].objects[key].read

    Base64.encode64(content)
  end
end

首先将文件上传到s3(因为客户端直接将其发送到那里),然后由服务器从s3读取以获得索引。这只是概念代码的证明,未来dev将从客户端上传到服务器,索引,然后上传到s3,然后从服务器上删除。

E.S版本:" 1.7.1", Lucene版本:" 4.10.4"

0 个答案:

没有答案