public function addSearcher(SearchInterface $searcher)
    {
        if ($searcher instanceof self && count($searcher->getSearchers())) {
            foreach ($searcher->getSearchers() as $compositeSearcher) {
                $this->addSearcher($compositeSearcher);
            }

            return $this;
        }

        $this->searchers[] = $searcher;

        return $this;
    }