easybib / generator-processes
迭代器的一系列过程
1.1.3
2014-09-26 12:24 UTC
Requires
- php: >=5.5.0
- react/partial: ~2.0
Requires (Dev)
- phpunit/phpunit: ~3.7.30
- ruflin/elastica: ~0.90.2
- squizlabs/php_codesniffer: 1.*
Suggests
- ruflin/elastica: ~0.90.2
This package is not auto-updated.
Last update: 2024-09-14 16:18:48 UTC
README
操作迭代器的一系列过程,通常作为生成器实现
过程
所有过程都是可调用的,它们在输入可遍历对象(通常是迭代器)上操作,并返回一个迭代器。
批量添加Elastica文档
\EasyBib\Process\Elastica::write
使用Elastica通过Elastica类型批量将文档数组写入Elasticsearch。您可以使用 Elastica::bindWrite($type)
获取只接受文档集迭代器的方法。
use Easybib\Process\Elastica;
$documentGroups = [
[$doc1, $doc2, $doc3],
[$doc4, $doc5],
];
$outputIterator = Elastica::write($elasticaType, $documentGroups);
// equivalent to
$write = Elastica::bindWrite($elasticaType);
$outputIterator = $write($documentGroups);
// $documentGroups == iterator_to_array($outputIterator);
搜索Elastica文档
EasyBib\Process\Elastica::search
使用Elastica搜索与给定搜索查询匹配的文档集。您可以使用 Elastica::bindSearch($type, $limit)
获取只接受搜索查询字符串和初始搜索偏移量的方法。
use Easybib\Process\Elastica;
$iterator = Elastica::search($elasticaIndex, 100, $keywords, 0);
// equivalent to
$search = Elastica::bindSearch($elasticaIndex, 100);
$iterator = $search($keywords, 0);
批量化转换
\EasyBib\Process\Transform::bulkify
将输入迭代器聚合为数组。
use Easybib\Process\Transform;
$items = [1, 2, 3, 4];
$outputIterator = Transform::bulkify(2, $items);
// equivalent to
$bulkify = Transform::bindBulkify(2);
$outputIterator = $bulkify($items);
// [[1, 2], [3, 4]] == iterator_to_array($outputIterator)
非批量化转换
通过单级扁平化输入,从而反转批量化操作。
use Easybib\Process\Transform;
$bulks = [[1, 2], [3, 4], [5, ['some', 'array']]]];
$outputIterator = Transform::unbulkify($bulks);
// [1, 2, 3, 4, 5, ['some', 'array']] == iterator_to_array($outputIterator)