include/SugarSearchEngine/SugarSearchEngineFullIndexer.php
\SugarSearchEngineFullIndexer
- Parent(s)
- \RunnableSchedulerJob
Constants
MAX_BULK_THRESHOLD
= 5000The max number of beans we process before starting to bulk insert so we dont hit memory issues.
MAX_BULK_QUERY_THRESHOLD
= 15000The max number of beans we process before starting to bulk insert so we dont hit memory issues.
POSTPONE_JOB_TIME
= 20Number of time to postpone a job by so it's not executed twice during the same request.
Properties
Methods

__construct(
\SugarSearchEngineAqbstractBase $engine
=
null
)
:
void| Name | Type | Description |
|---|---|---|
| $engine | \SugarSearchEngineAqbstractBase |

createJobQueueConsumerForModule(
$module
)
:
StringCreate a job queue FTS consumer for a specific module
| Name | Type | Description |
|---|---|---|
| $module |
| Type | Description |
|---|---|
| String | Id of newly created job |

generateFTSQuery(
$module, $fieldDefinitions
)
:
stringGenerate the query necessary to retrieve FTS enabled fields for a bean.
| Name | Type | Description |
|---|---|---|
| $module | ||
| $fieldDefinitions |
| Type | Description |
|---|---|
| string |

getStatistics(
)
:
arrayReturn statistics about how many records per module were indexed.
| Type | Description |
|---|---|
| array |

indexRecords(
$module, $fieldDefinitions
)
:
void| Name | Type | Description |
|---|---|---|
| $module | ||
| $fieldDefinitions |

initiateFTSIndexer(
array $modules
=
array(), $deleteExistingData
=
TRUE
)
:
\SugarSearchEngineFullIndexerInitiate the FTS indexer. Once initiated, all work will be done by the FTS consumers which will be invoked by the job queue system.
| Name | Type | Description |
|---|---|---|
| $modules | array | |
| $deleteExistingData |
| Type | Description |
|---|---|
| \SugarSearchEngineFullIndexer |

isFTSIndexScheduleCompleted(
)
:
boolDetermine if a system has been indexed
| Type | Description |
|---|---|
| bool |
- Static

isFTSIndexScheduled(
)
:
mixedTODO: Need to update Determine if a pre-existing scheduler for fts exists. If so return the id, else false.
| Type | Description |
|---|---|
| mixed |
- Static

markBeansProcessed(
\$beanIDs $beanIDs
)
:
voidGiven a set of bean ids processed from the queue table, mark them as being processed. We will throttle the update query as there is a limit on the size of records that can be passed to an in clause yet we don't want to update them individually for performance reasons.
| Name | Type | Description |
|---|---|---|
| $beanIDs | \$beanIDs | array of bean ids to delete |

performFullSystemIndex(
$modules
=
array(), $clearExistingData
=
TRUE
)
:
voidIndex the entire system. This should only be called from a worker process as this is a time intensive process and does not take advantage of the job queue system. Currently this call is only used when populating demo data and should be used sparingly.
| Name | Type | Description |
|---|---|---|
| $modules | ||
| $clearExistingData |

populateIndexQueueForModule(
$module
)
:
voidPopulate the index queue with all records from a particular module
| Name | Type | Description |
|---|---|---|
| $module |

removeExistingFTSConsumers(
)
:
voidRemove existing FTS Consumers that may have been created by a previous scheduled index.

run(
$module
)
:
voidMain function that handles the indexing of a bean and is called by the job queue system.
| Name | Type | Description |
|---|---|---|
| $module |

setBeanIDsProcessed(
$deleteIDs
)
:
voidInternal function to mark records within queue table as processed.
| Name | Type | Description |
|---|---|---|
| $deleteIDs |

setJob(
\SchedulersJob $job
)
:
voidSet the scheduler job that initiated the run call.
| Name | Type | Description |
|---|---|---|
| $job | \SchedulersJob |

shouldIndexViaBean(
$module
)
:
boolTODO: For the 6.5.1 release this logic will need to be updted as we support additional field types
Determine if a particular module should be indexed via its bean or if we can build a direct query. Indexing a module by going through SugarBean can introduce performance problems
| Name | Type | Description |
|---|---|---|
| $module |
| Type | Description |
|---|---|
| bool |