# getConfigFactory()->makeConfig( 'CirrusSearch' ); $conn = CirrusSearch\Connection::getPool( $config, 'codfw' ); $scorer = CirrusSearch\BuildDocument\Completion\SuggestScoringMethodFactory::getScoringMethod( 'popqual' ); $builder = new CirrusSearch\BuildDocument\Completion\SuggestBuilder( $scorer, [] ); $sourceIndex = $conn->getIndex( 'enwiki', 'content' ); $query = new \Elastica\Query(); $query->setSource(['includes' => $builder->getRequiredFields()]); $pageAndNs = new \Elastica\Query\BoolQuery(); $pageAndNs->addShould( new Elastica\Query\Term(["namespace" => NS_MAIN])); $pageAndNs->addShould( new Elastica\Query\Term(["redirect.namespace" => NS_MAIN])); $pageAndNs->addMust(new \Elastica\Query\Type('page')); $bool = new Elastica\Query\BoolQuery(); $bool->addFilter($pageAndNs); $query->setQuery($bool); $search = new \Elastica\Search( $conn->getClient() ); $search->setQuery($query); $search->addIndex($sourceIndex); $query->setSize(100); $scroll = new \Elastica\Scroll( $search, '15m' ); $start = microtime(true); foreach ( $scroll as $results ) {echo "."; } $took = microtime(true) - $start; var_dump($took);