IndexSearchRepository
Index search abstraction to search through the index
This class is a specific repository implementation and is not considered part of the Public TYPO3 API.
Table of Contents
Properties
- $descendingSortOrderFlag : bool
- Descending sort order flag formally known as $this->piVars['desc']
- $displayForbiddenRecords : bool
- Display forbidden records formally known as $this->conf['show.']['forbiddenRecords']
- $externalParsers : array<string|int, mixed>
- External Parsers
- $frontendUserGroupList : string
- Frontend User Group List
- $languageUid : int
- Language uid formally known as $this->piVars['lang']
- $mediaType : MediaType|string
- Media type Can be either an ENUM backed value or a raw string formally known as $this->piVars['media']
- $numberOfResults : int
- Number of results formally known as $this->piVars['result']
- $resultpagePointer : int
- Result page pointer formally known as $this->piVars['pointer']
- $searchRootPageIdList : string
- list of all root pages that will be used If this value is set to less than zero (eg. -1) searching will happen in ALL of the page tree with no regard to branches at all.
- $searchType : SearchType
- Search type formally known as $this->piVars['type']
- $sections : string
- Sections formally known as $this->piVars['sections']
- $sortOrder : string
- Sort order formally known as $this->piVars['sort_order']
- $useExactCount : bool
- Flag for exact search count formally known as $conf['search.']['exactCount']
- $wSelClauses : array<string|int, mixed>
- Select clauses for individual words, will be filled during the search
Methods
- __construct() : mixed
- doSearch() : array<string|int, mixed>|false
- Get search result rows / data from database. Returned as data in array.
- getFullTextRowByPhash() : array<string|int, mixed>|null
- getIndexConfigurationById() : array<string|int, mixed>|null
- initialize() : void
- initialize all options that are necessary for the search
- writeSearchStat() : void
- Write statistics information to database for the search operation if there was at least one search word.
- checkResume() : bool
- Checking if the resume can be shown for the search result (depending on whether the rights are OK) ? Should it also check for gr_list "0,-1"?
- execPHashListQuery() : Result
- Returns a query which selects the search-word from the word/rel tables.
- freeIndexUidWhere() : string
- Where-clause for free index-uid value.
- getDescendingSortOrderFlag() : string
- Returns "DESC" or "" depending on the settings of the incoming highest/lowest result order (piVars['desc'])
- getPhashList() : string
- Returns a COMPLETE list of phash-integers matching the search-result composed of the search-words in the $searchWords array.
- getPreparedQueryBuilder_SQLpointer() : QueryBuilder|false
- Gets the QueryBuilder instance prepared for the phash list.
- getPreparedQueryBuilder_SQLpointerMysqlFulltext() : QueryBuilder|false
- Gets the QueryBuilder instance prepared for the search words.
- getSearchRootPageIdList() : array<string|int, int>
- A list of integer which should be root-pages to search from
- getSearchString() : array<string|int, mixed>
- Returns a search string for use with MySQL FULLTEXT query
- languageWhere() : string
- Returns AND statement for selection of language
- mediaTypeWhere() : string
- Returns AND statement for selection of media type
- multiplePagesType() : bool
- Returns if an item type is a multipage item type
- prepareFinalQuery() : QueryBuilder
- Prepare final query, based on phash integer list. The main point is sorting the result in the right order.
- prepareFinalQuery_fulltext() : QueryBuilder
- Execute final query, based on search data. The main point is sorting the result in the right order.
- searchDistinct() : Result
- Search for one distinct word
- searchSentence() : Result
- Search for a sentence
- searchWord() : Result
- Search for a word
- sectionTableWhere() : string
- Returns AND statement for selection of section in database. (rootlevel 0-2 + page_id)
Properties
$descendingSortOrderFlag
Descending sort order flag formally known as $this->piVars['desc']
protected
bool
$descendingSortOrderFlag
= false
$displayForbiddenRecords
Display forbidden records formally known as $this->conf['show.']['forbiddenRecords']
protected
bool
$displayForbiddenRecords
= false
enabled through settings.displayForbiddenRecords
$externalParsers
External Parsers
protected
array<string|int, mixed>
$externalParsers
= []
$frontendUserGroupList
Frontend User Group List
protected
string
$frontendUserGroupList
= ''
$languageUid
Language uid formally known as $this->piVars['lang']
protected
int
$languageUid
= 0
$mediaType
Media type Can be either an ENUM backed value or a raw string formally known as $this->piVars['media']
protected
MediaType|string
$mediaType
= \TYPO3\CMS\IndexedSearch\Type\MediaType::INTERNAL_PAGES
$numberOfResults
Number of results formally known as $this->piVars['result']
protected
int
$numberOfResults
= 10
$resultpagePointer
Result page pointer formally known as $this->piVars['pointer']
protected
int
$resultpagePointer
= 0
$searchRootPageIdList
list of all root pages that will be used If this value is set to less than zero (eg. -1) searching will happen in ALL of the page tree with no regard to branches at all.
protected
string
$searchRootPageIdList
= ''
$searchType
Search type formally known as $this->piVars['type']
protected
SearchType
$searchType
= \TYPO3\CMS\IndexedSearch\Type\SearchType::DISTINCT
$sections
Sections formally known as $this->piVars['sections']
protected
string
$sections
= ''
$sortOrder
Sort order formally known as $this->piVars['sort_order']
protected
string
$sortOrder
= ''
$useExactCount
Flag for exact search count formally known as $conf['search.']['exactCount']
protected
bool
$useExactCount
= false
Continue counting and checking of results even if we are sure they are not displayed in this request. This will slow down your page rendering, but it allows precise search result counters. enabled through settings.exactCount
$wSelClauses
Select clauses for individual words, will be filled during the search
protected
array<string|int, mixed>
$wSelClauses
= []
Methods
__construct()
public
__construct(Context $context, ExtensionConfiguration $extensionConfiguration, TimeTracker $timeTracker, ConnectionPool $connectionPool, EventDispatcherInterface $eventDispatcher) : mixed
Parameters
- $context : Context
- $extensionConfiguration : ExtensionConfiguration
- $timeTracker : TimeTracker
- $connectionPool : ConnectionPool
- $eventDispatcher : EventDispatcherInterface
doSearch()
Get search result rows / data from database. Returned as data in array.
public
doSearch(array<string|int, mixed> $searchWords, int $freeIndexUid) : array<string|int, mixed>|false
Parameters
- $searchWords : array<string|int, mixed>
-
Search word array
- $freeIndexUid : int
-
Pointer to which indexing configuration you want to search in. -1 means no filtering. 0 means only regular indexed content.
Return values
array<string|int, mixed>|false —FALSE if no result, otherwise an array with keys for first row, result rows and total number of results found.
getFullTextRowByPhash()
public
getFullTextRowByPhash(string $phash) : array<string|int, mixed>|null
Parameters
- $phash : string
Return values
array<string|int, mixed>|nullgetIndexConfigurationById()
public
getIndexConfigurationById(int $id) : array<string|int, mixed>|null
Parameters
- $id : int
Return values
array<string|int, mixed>|nullinitialize()
initialize all options that are necessary for the search
public
initialize(array<string|int, mixed> $settings, array<string|int, mixed> $searchData, array<string|int, mixed> $externalParsers, int|string $searchRootPageIdList) : void
Parameters
- $settings : array<string|int, mixed>
-
the extbase plugin settings
- $searchData : array<string|int, mixed>
-
the search data
- $externalParsers : array<string|int, mixed>
- $searchRootPageIdList : int|string
writeSearchStat()
Write statistics information to database for the search operation if there was at least one search word.
public
writeSearchStat(int $pageId, array<string|int, mixed> $searchWords) : void
Parameters
- $pageId : int
- $searchWords : array<string|int, mixed>
-
Search Word array
checkResume()
Checking if the resume can be shown for the search result (depending on whether the rights are OK) ? Should it also check for gr_list "0,-1"?
protected
checkResume(array<string|int, mixed> $row) : bool
Parameters
- $row : array<string|int, mixed>
-
Result row array.
Return values
bool —Returns TRUE if resume can safely be shown
execPHashListQuery()
Returns a query which selects the search-word from the word/rel tables.
protected
execPHashListQuery(string $wordSel, string $additionalWhereClause) : Result
Parameters
- $wordSel : string
-
WHERE clause selecting the word from phash
- $additionalWhereClause : string
-
Additional AND clause in the end of the query.
Return values
ResultfreeIndexUidWhere()
Where-clause for free index-uid value.
protected
freeIndexUidWhere(int $freeIndexUid) : string
Parameters
- $freeIndexUid : int
-
Free Index UID value to limit search to.
Return values
string —WHERE SQL clause part.
getDescendingSortOrderFlag()
Returns "DESC" or "" depending on the settings of the incoming highest/lowest result order (piVars['desc'])
protected
getDescendingSortOrderFlag([bool $inverse = false ]) : string
Parameters
- $inverse : bool = false
-
If TRUE, inverse the order which is defined by piVars['desc']
Return values
string —" DESC" or formerly known as tx_indexedsearch_pi->isDescending
getPhashList()
Returns a COMPLETE list of phash-integers matching the search-result composed of the search-words in the $searchWords array.
protected
getPhashList(array<string|int, mixed> $searchWords) : string
The list of phash integers are unsorted and should be used for subsequent selection of index_phash records for display of the result.
Parameters
- $searchWords : array<string|int, mixed>
-
Search word array
Return values
string —List of integers
getPreparedQueryBuilder_SQLpointer()
Gets the QueryBuilder instance prepared for the phash list.
protected
getPreparedQueryBuilder_SQLpointer(array<string|int, mixed> $searchWords, int $freeIndexUid) : QueryBuilder|false
Parameters
- $searchWords : array<string|int, mixed>
-
Search words
- $freeIndexUid : int
-
Pointer to which indexing configuration you want to search in. -1 means no filtering. 0 means only regular indexed content.
Return values
QueryBuilder|falsegetPreparedQueryBuilder_SQLpointerMysqlFulltext()
Gets the QueryBuilder instance prepared for the search words.
protected
getPreparedQueryBuilder_SQLpointerMysqlFulltext(array<string|int, mixed> $searchWordsArray, int $freeIndexUid) : QueryBuilder|false
mysql fulltext specific version triggered by ext_conf_template setting 'useMysqlFulltext'
Parameters
- $searchWordsArray : array<string|int, mixed>
-
Search words
- $freeIndexUid : int
-
Pointer to which indexing configuration you want to search in. -1 means no filtering. 0 means only regular indexed content.
Return values
QueryBuilder|falsegetSearchRootPageIdList()
A list of integer which should be root-pages to search from
protected
getSearchRootPageIdList() : array<string|int, int>
Return values
array<string|int, int>getSearchString()
Returns a search string for use with MySQL FULLTEXT query
protected
getSearchString(array<string|int, mixed> $searchWordArray) : array<string|int, mixed>
mysql fulltext specific helper method
Parameters
- $searchWordArray : array<string|int, mixed>
-
Search word array
Return values
array<string|int, mixed> —Search string
languageWhere()
Returns AND statement for selection of language
protected
languageWhere() : string
Return values
string —AND statement for selection of language
mediaTypeWhere()
Returns AND statement for selection of media type
protected
mediaTypeWhere() : string
Return values
string —AND statement for selection of media type
multiplePagesType()
Returns if an item type is a multipage item type
protected
multiplePagesType(string $itemType) : bool
Parameters
- $itemType : string
-
Item type
Return values
bool —TRUE if multipage capable
prepareFinalQuery()
Prepare final query, based on phash integer list. The main point is sorting the result in the right order.
protected
prepareFinalQuery(string $list, int $freeIndexUid) : QueryBuilder
Parameters
- $list : string
-
List of phash integers which match the search.
- $freeIndexUid : int
-
Pointer to which indexing configuration you want to search in. -1 means no filtering. 0 means only regular indexed content.
Return values
QueryBuilderprepareFinalQuery_fulltext()
Execute final query, based on search data. The main point is sorting the result in the right order.
protected
prepareFinalQuery_fulltext(array<string|int, mixed> $searchData, int $freeIndexUid) : QueryBuilder
mysql fulltext specific helper method
Parameters
- $searchData : array<string|int, mixed>
-
Array with search string, boolean indicator, and fulltext index reference
- $freeIndexUid : int
-
Pointer to which indexing configuration you want to search in. -1 means no filtering. 0 means only regular indexed content.
Return values
QueryBuildersearchDistinct()
Search for one distinct word
protected
searchDistinct(string $sWord) : Result
Parameters
- $sWord : string
-
the search word
Return values
ResultsearchSentence()
Search for a sentence
protected
searchSentence(string $sWord) : Result
Parameters
- $sWord : string
-
the search word
Return values
ResultsearchWord()
Search for a word
protected
searchWord(string $sWord, LikeWildcard $likeWildcard) : Result
Parameters
- $sWord : string
-
the search word
- $likeWildcard : LikeWildcard
Return values
ResultsectionTableWhere()
Returns AND statement for selection of section in database. (rootlevel 0-2 + page_id)
protected
sectionTableWhere() : string
Return values
string —AND clause for selection of section in database.