반응형
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
반응형
'sourcetip' 카테고리의 다른 글
json 배열에서 mariadb의 JSON 함수를 사용하여 레코드를 검색하는 방법 (0) | 2023.07.22 |
---|---|
오라클 실행 계획 (0) | 2023.07.22 |
C에서 참조로 구조 전달 (0) | 2023.07.22 |
여러 개의 선택 항목이 있을 때 SQL_CALC_Found_ROWS를 사용하려면 어떻게 해야 합니까? (0) | 2023.07.22 |
matplotlib에서 동적으로 플롯 업데이트 (0) | 2023.07.22 |