@@ -42,6 +42,7 @@ protected function configure()
42
42
protected function execute (InputInterface $ input , OutputInterface $ output ): int
43
43
{
44
44
$ io = new SymfonyStyle ($ input , $ output );
45
+ $ chunkSize = 200 ;
45
46
46
47
$ count = 0 ;
47
48
$ maxItems = $ input ->getArgument ('maxItems ' );
@@ -73,22 +74,22 @@ protected function execute(InputInterface $input, OutputInterface $output): int
73
74
$ progressBar ->start ();
74
75
75
76
/*** @var $repository RepositoryInterface */
77
+ Charter::setLocale ('en ' );
76
78
foreach ( $ repositories as $ repository_name ) {
77
79
$ repository = $ this ->container ->get ($ repository_name );
78
- $ repository ->indexQuery ()->chunk (100 ,
79
- function ($ res ) use ($ service , &$ count , $ progressBar , $ maxItems ) {
80
+ $ repository ->indexQuery ()->chunk ($ chunkSize ,
81
+ function ($ traditions ) use ($ service , &$ count , $ progressBar , $ maxItems, $ chunkSize ) {
80
82
if ( $ maxItems && $ count >= $ maxItems ) {
81
83
return false ;
82
84
}
83
85
84
- /** @var Charter $charter */
85
- foreach ($ res as $ charter ) {
86
- $ res = new ElasticTraditionResource ($ charter ->translate ('en ' ));
87
- $ service ->add ($ res );
88
- $ count ++;
89
- }
86
+ // index traditions
87
+ $ traditionResources = ElasticTraditionResource::collection ($ traditions );
88
+ $ count += $ traditionResources ->count ();
89
+ $ service ->addMultiple ($ traditionResources );
90
90
91
- $ progressBar ->advance (100 );
91
+ // update progress bar
92
+ $ progressBar ->advance ($ chunkSize );
92
93
});
93
94
}
94
95
@@ -112,19 +113,19 @@ function($res) use ($service, &$count, $progressBar, $maxItems) {
112
113
$ progressBar ->start ();
113
114
114
115
$ repository ->indexQuery ()->chunk (100 ,
115
- function ($ res ) use ($ service , &$ count , $ progressBar , $ maxItems) {
116
+ function ($ charters ) use ($ service , &$ count , $ progressBar , $ maxItems, $ chunkSize ): bool {
116
117
if ( $ maxItems && $ count >= $ maxItems ) {
117
118
return false ;
118
119
}
119
120
120
- /** @var Charter $charter */
121
- foreach ($ res as $ charter ) {
122
- $ res = new ElasticCharterResource ($ charter ->translate ('en ' ));
123
- $ service ->add ($ res );
124
- $ count ++;
125
- }
121
+ // index charters
122
+ $ charterResources = ElasticCharterResource::collection ($ charters );
123
+ $ count += $ charterResources ->count ();
124
+ $ service ->addMultiple ($ charterResources );
126
125
127
- $ progressBar ->advance (100 );
126
+ // update progress bar
127
+ $ progressBar ->advance ($ chunkSize );
128
+ return true ;
128
129
});
129
130
130
131
$ service ->switchToNewIndex ($ indexName );
0 commit comments