我正在浏览轮胎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选项的示例或用例吗?