sourcetip

TYPO38.7.13 - MariaDB 쿼리 작성기 전체 텍스트

fileupload 2023. 7. 22. 10:21
반응형

TYPO38.7.13 - MariaDB 쿼리 작성기 전체 텍스트

SELECT name 
FROM tx_snippethighlightsyntax_domain_model_snippets 
WHERE (MATCH(name, description, code, comment) AGAINST ('css'));

이 쿼리는 MariaDB와 함께 phpMyAdmin에서 작동합니다.이제 저의 "문제"는 Query Builder를 사용하여 이를 TYPO3에 적용하는 것입니다.일치 또는 반대 연산자가 보이지 않습니다.

지금까지 제 기능은 다음과 같습니다.

private $tx = 'tx_snippethighlightsyntax_domain_model_snippets';

public function ftsSearch()
    {
        $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class);
        $ftsQueryBuilder = $connectionPool->getQueryBuilderForTable($this->tx);
        $fts = $ftsQueryBuilder
            ->select($this->tx . '.name')
            ->from($this->tx)
            ->where($ftsQueryBuilder->expr()->eq(
                MAGIC HAPPENS HERE ?
            )
            ->execute()
            ->fetchAll();
        return $fts;
    }

TYPO3 코어의 색인화된 검색 확장은 쿼리에서 MATCH 및 AGONT를 사용합니다.

인덱스 검색 리포지토리에서 가져온 다음 코드는 쿼리를 작성하는 데 도움이 될 것입니다.

    $searchBoolean = '';
    if ($searchData['searchBoolean']) {
        $searchBoolean = ' IN BOOLEAN MODE';
    }
    $queryBuilder->andWhere(
        'MATCH (' . $queryBuilder->quoteIdentifier($searchData['fulltextIndex']) . ')'
        . ' AGAINST (' . $queryBuilder->createNamedParameter($searchData['searchString'])
        . $searchBoolean
        . ')'
    );
private $tx = 'tx_snippethighlightsyntax_domain_model_snippets';

public function ftsSearch()
{
    $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class);
    $ftsQueryBuilder = $connectionPool->getQueryBuilderForTable($this->tx);
    $fts = $ftsQueryBuilder
        ->select($this->tx . '.name')
        ->from($this->tx)
        ->where('MATCH('
            . $this->tx .'.name,'
            . $this->tx .'.description,'
            . $this->tx .'.code,'
            . $this->tx .'.comment)'
            . ' AGAINST(' . $ftsQueryBuilder->createNamedParameter('put_search_here')
            . ')')
        ->execute()
        ->fetchAll();
    return $fts;
}

이것은 나에게 효과가 있습니다.감사해요!

언급URL : https://stackoverflow.com/questions/51041187/typo3-8-7-13-mariadb-querybuilder-fulltext

반응형