Smile\ElasticsuiteThesaurus\Model\ResourceModel\Thesaurus\Collection::addTermFilterToSelect PHP Метод

addTermFilterToSelect() приватный Метод

Inject terms data on collection
private addTermFilterToSelect ( string $term )
$term string Term filter text.
    private function addTermFilterToSelect($term)
    {
        $select = $this->getSelect();
        if ($this->termsLinked === false) {
            $select->joinLeft(['expansion_table' => $this->getTable(ThesaurusInterface::EXPANSION_TABLE_NAME)], new \Zend_Db_Expr("main_table.thesaurus_id = expansion_table.thesaurus_id"), ['expansion_terms' => new \Zend_Db_Expr("GROUP_CONCAT( DISTINCT expansion_table.term SEPARATOR ',')")]);
            $select->joinLeft(['reference_table' => $this->getTable(ThesaurusInterface::REFERENCE_TABLE_NAME)], new \Zend_Db_Expr("reference_table.term_id = expansion_table.term_id " . "AND main_table." . ThesaurusInterface::THESAURUS_ID . " = reference_table." . ThesaurusInterface::THESAURUS_ID), ['reference_terms' => new \Zend_Db_Expr("GROUP_CONCAT( DISTINCT reference_table.term SEPARATOR ',')")]);
            $select->group("main_table." . ThesaurusInterface::THESAURUS_ID);
            $select->where("expansion_table.term LIKE '%{$term}%'", $term)->orWhere("reference_table.term LIKE '%{$term}%'", $term);
            $this->termsLinked = true;
        }
        return $select;
    }