Tire gem中的reindex方法

时间:2013-08-09 02:27:33

标签: elasticsearch tire

我正在浏览轮胎gem(使用它作为Elsaticsearch客户端)库,尤其是reindex方法。这是ruby脚本的链接:    https://github.com/karmi/tire/blob/master/lib/tire/index.rb

所以这是轮胎宝石中的reindex方法。

def reindex(name, options={}, &block)
  new_index = Index.new(name)
  new_index.create(options) unless new_index.exists?

  transform = options.delete(:transform)

  Search::Scan.new(self.name, &block).each do |results|

    documents = results.map do |document|
      document  = document.to_hash.except(:type, :_index, :_explanation, :_score, :_version, :highlight, :sort)
      document  = transform.call(document) if transform
      document
    end

    new_index.bulk_store documents
  end
end

我得到整个滚动和扫描概念以进行重建索引。但我无法理解的是上述方法中的转换选项。

这是什么:

transform = options.delete(:transform)

和此:

document  = transform.call(document) if transform

实现?

任何人都可以提供有关如何使用:transform选项的示例或用例吗?

0 个答案:

没有答案