Enable the full-text search
The full-text search for objects in the Alfabet database and the full text search on top of the Help window require a search index to be available.
For the full-text search of the online help, the following data is delivered by Software GmbH with the Alfabet installation:
- A folder HelpSearchIndex containing the search index for the standard Alfabet online help.
Specify a search index directory
- On the local file system, create a directory that shall include the search indices. The Alfabet components must have ReadWrite access to the directory.
- Copy the HelpSearchIndex folder to the search index directory.
- In the Alfabet Administrator, click the Aliases node.
- In the table, select the server alias of the Alfabet Web Application and click Edit.
- In the Overview tab, click the three dots on the right of the Search Index Directory field and select the directory for the search indices created in step one.
- Click OK and close the Alfabet Administrator.
Define the objects classes and object class properties for which full text search shall be available
- In the Presentation tab explorer of Alfabet Expand, double-click XML Objects > SearchManager.
- In the editor, check whether the <SearchGroup> definitions match your requirements and alter them, if required. Users will be able to filter the full text search by search group and query definition. The following attributes can be defined:
The XML element <SearchGroup> has the following XML attributes:
- Name: Define the name of the search group that will be displayed to users when selecting a search option in the filter of the full text search. This attribute is mandatory.
- Profiles: You can define a comma separated list of user profile names can be defined with this attribute to limit the availability of the search group to the specified user profiles. If the attribute is not set, the search group is available for all user profiles.
The XML element <Query> has the following XML attributes:
- Name: Define the name of the search that will be displayed to users when selecting a search option within the selected search group in the filter of the full text search. This attribute is mandatory.
- ClassName: Enter the name of the object class that shall be searched.
- ShowProps: Enter the name of the object class properties that shall be displayed in the search results under the headline.
- ImageProps: Enter the name of the object class properties that shall be displayed in the headline of the search results.
- ExportProps: Enter the name of the object class properties that shall be added to the search index. when a user searches for a string, the string is searched for in the defined object class properties. you must define at least all object class properties defined in the XML attribute ShowProps and XML attribute ImageProps.
- Query: Optionally, you can define an Alfabet query to limit the entries in the full text search to a subset of the object of the object class. Show properties must not be defined.
- Query="ALFABET_QUERY_500 FIND Project WHERE Project.Stereotype='ProjectStep'
Add the full text search to user profiles
- Go to the Admin tab in Alfabet Expand.
- Expand the User Profiles node.
- Expand the node of the user profile for the administrator. You can see already existing menu items as sub-elements.
- Do one of the following:
- To add the functionality on the first level of the menu, right-click the node of the user profile and select Create Menu Item.
- To add the functionality as sub-item of an existing menu item, right-click the node of the existing menu item and select Create Menu Item.
- Click the new menu item in the explorer and define the following:
- Target Type: Select BusinessFunction.
- Target: Select ADMIN_FullTextSearch.
- Caption: Enter the text to be displayed in the left-side menu of the user interface.
- Icon: If an icon shall be displayed in the left-side menu of the user interface on the left of the text, open the editor of the Icon attribute. Select the icon gallery containing the icon and then select the icon from the icon list.
- Arguments: Leave this field empty.
- Click the parent node of the menu item to edit its attributes.
- open the editor of the Sub-Items attribute, click the new menu item in the list and move it to the correct position in the list of menu items with the arrow buttons on the upper right of the editor.
Schedule creation of the full text search index in regular intervals.
- In the menu of Alfabet Expand, click the Save button.
- Open the Job Scheduler functionality in the user interface.
- In the toolbar, click New > Create Schedule.
- In the Stereotype Selector that opens, select ADIF Import Job Schedule.
- In the editor, define the following attributes:
Basic Data tab:
- Name: Define a name for the job schedule. The job schedule will be listed in the table of the Job Schedule functionality with this name. The name must be unique. It is not possible to define two job schedules with the same name, even if the type of job schedule is different. This attribute is mandatory.
- Description: Provide a meaningful description about the purpose of the job schedule.
- Verbose Logging: Select the checkbox if additional information about the running process shall be logged. Verbose logging is in most cases not required and can lead to a decrease in performance. The default setting for this attribute is False.
- Import Scheme: Select FullTextSearchUtil.
- Parameters: Optionally, you can enter the name of a search groupfor the SearchGroupName parameter to execute the search index creation only for one search group. If the parameter is not set, a search index is created for all search groups. You can also optionally specify a language locale ID such as 1033 for English(USA) in the Language parameter to restrict the language for which the search group shall be created.
Schedule tab:
- Schedule Time: Enter the start time for the job execution into the Start Time field.
- Recurrence Pattern: Select one of the following check boxes and provide additional data, if applicable:
- Hourly: The interval between job executions is the time selected in the field of every.
- Daily: The interval between job executions is the number of days specified in the field day(s) as an integer.
- Weekly: The interval between job executions is the number of weeks specified in the field week(s) on as an integer. In addition, select the checkbox of the day of the week that the job shall be executed for each recurrence.
- Monthly: There are tow methods to select from. If you select the checkbox Date-Based, define a day of the month in the day field behind the checkbox. For example if you want the job to be executed on the fifteenth of each month, enter 15. If you select the checkbox Weekday-Based, you can schedule the job for a specific day of a specific week in the month. In the first field behind the checkbox, select the week of the month the job shall be executed. In the second field behind the checkbox, select the day of the week the job shall be executed. The interval between job executions is the number of weeks specified in the field month(s) field of the selected scheduling method.
- Once: The job is only executed once.
- Range of Recurrence: This definition is mandatory. Select the start date for the job schedule from the calendar in the Start Date field. For the definition of the end of the recurrence period, either select End after: and define the maximum number of occurrences in the Occurrences field or select End by: and select the end date for the job scheduling from the calendar in the field next to the checkbox entry. If you have selected Once in the Recurrence Pattern field, only define the date of execution via the Start Date field.
Execution Info tab:
This tab provides the ability to adapt the job scheduling to environmental conditions, like for example the scheduling of other jobs or maintenance windows during which execution shall be postponed.
- Maximum Wait Time [min]: Enter a maximum time in minutes that the job execution can be postponed if one of the following applies:
- The execution of jobs for the current job schedule depends on the execution of one or multiple other jobs to be finished because the execution result of one job is required to be available to execute this job or because both jobs perform conflicting actions. If a job of the current schedule shall be executed while a job defined in the Dependent Jobs field is still running, the job will not be executed but re-scheduled for execution five minutes later until the dependent jobs are finished.
- A job for the current job schedule cannot be executed because the current execution time lies within a maintenance window. Maintenance windows are time periods that are blocked to avoid interruption of the job by maintenance work. If a job is due within a maintenance window period, the job will not be executed immediately. If the maintenance window is configured to re-schedule jobs, it will be re-scheduled for execution one minute after the end of the maintenance window. If the maintenance window is configured to skip jobs, the job execution during the maintenance window will be skipped and the next execution of the job is scheduled according to the settings in the Schedule tab of the job schedule editor.
Maintenance windows must have been configured for the Alfabet components in order to adapt job scheduling to the maintenance window via the Maximum Wait Time [min] setting. For information about the definition of maintenance windows, see Update maintenance windows for the Job Schedule functionality.
If the time between the originally due job execution and the end of the maintenance window or the end of execution of a dependent job exceeds the maximum wait time, job execution will be cancelled and an error message is written into the log file. The next execution of the job is scheduled according to the settings in the Schedule tab of the job schedule editor.
- Dependent Jobs: If the execution of jobs for the current job schedule shall be postponed if another job is still running, click New > Create New Job Dependency. Select the job schedule the current job schedule depends on in the list and click OK. If a job is running for one of the dependent job schedules, the execution of the job for the current job schedule will be shifted to the scheduled time plus minutes until the execution of all dependent jobs is finished. If the maximum wait time defined with Maximum Wait Time [min] is exceeded while dependent jobs are still running, the execution of the current job is cancelled and the next execution scheduled according to the settings in the Schedule tab of the job schedule editor.
- Expected Execution Time [min]: If a maximum time for execution of the job is defined in minutes in this field, a warning is written into the log file available via the Show Log button if the execution of a job for the current schedule exceeds the maximum wait time. The job is nevertheless further executed.
- Executing User: Select a user for which the wakeup events of the job schedule shall be executed. If no user is specified, the user editing the job schedule will be the execution user for the job schedule. Each time a scheduled job has been executed, the executing user will see a slide-in Event Feedback message window informing him/her whether the current execution was successful. If a result is available for download, a download link is displayed. By default, the slide-in message will be displayed to the user that created the job schedule when he/she is logged in with the same user profile as on creation of the job schedule. This default behavior can be changed. Select a user from the drop-down list to show the Event Feedback message to that user instead. Please note that the selected user must be logged in with the user profile defined in the Executing User Profile attribute to receive the Event Feedback messages for this job schedule.
- Executing User Profile: The user profile that the user defined with the Executing User attribute must be logged in with to receive Event Feedback messages for execution of this job schedule. By default, message will be displayed to the user that created the job schedule when he/she is logged in with the same user profile as on creation of the job schedule. This attribute is mandatory if Executing User is defined.
- On Completion Jobs: You can configure jobs to be started after execution of the current job. This required configuration in both jobs.
- Configure the indirectly triggered job without an own job schedule. In the Basic Data tab of this job, select the Indirectly Triggered checkbox.
- Click the New button above the On Completion Jobs table of the current job and select Add. Select the job that shall be started on completion of the current job.