19 declare(strict_types=1);
61 $this->
ilias = $DIC[
'ilias'];
62 $this->setting = $DIC->settings();
69 return self::$instance;
71 return self::$instance =
new ilSearchSettings();
81 'crs' => array(
'filter' =>
'type:crs',
'trans' =>
'objs_crs'),
82 'grp' => array(
'filter' =>
'type:grp',
'trans' =>
'objs_grp'),
83 'lms' => array(
'filter' =>
'type:lm OR type:htlm',
'trans' =>
'obj_lrss'),
84 'glo' => array(
'filter' =>
'type:glo',
'trans' =>
'objs_glo'),
85 'mep' => array(
'filter' =>
'type:mep',
'trans' =>
'objs_mep'),
86 'tst' => array(
'filter' =>
'type:tst OR type:svy OR type:qpl OR type:spl',
'trans' =>
'search_tst_svy'),
87 'frm' => array(
'filter' =>
'type:frm',
'trans' =>
'objs_frm'),
88 'exc' => array(
'filter' =>
'type:exc',
'trans' =>
'objs_exc'),
89 'file' => array(
'filter' =>
'type:file',
'trans' =>
'objs_file'),
90 'mcst' => array(
'filter' =>
'type:mcst',
'trans' =>
'objs_mcst'),
91 'wiki' => array(
'filter' =>
'type:wiki',
'trans' =>
'objs_wiki'),
92 'copa' => array(
'filter' =>
'type:copa',
'trans' =>
'objs_copa'),
99 'pdf' => array(
'filter' =>
'mimeType:pdf',
'trans' =>
'search_mime_pdf'),
100 'word' => array(
'filter' =>
'mimeType:word',
'trans' =>
'search_mime_word'),
101 'excel' => array(
'filter' =>
'mimeType:excel',
'trans' =>
'search_mime_excel'),
102 'powerpoint' => array(
'filter' =>
'mimeType:powerpoint',
'trans' =>
'search_mime_powerpoint'),
103 'image' => array(
'filter' =>
'mimeType:image',
'trans' =>
'search_mime_image')
119 foreach (self::getLuceneItemFilterDefinitions() as $obj => $def) {
120 if (isset($filter[$obj]) and $filter[$obj]) {
121 $enabled[$obj] = $def;
135 foreach (self::getLuceneMimeFilterDefinitions() as $mime => $def) {
136 if (isset($filter[$mime]) and $filter[$mime]) {
137 $enabled[$mime] = $def;
145 $this->prefix_wildcard = $a_stat;
160 $ilDB = $DIC->database();
162 static $seas_ref_id = 0;
167 $query =
"SELECT object_reference.ref_id as ref_id FROM object_reference,tree,object_data " .
169 "AND object_data.type = 'seas' " .
170 "AND object_reference.ref_id = tree.child " .
171 "AND object_reference.obj_id = object_data.obj_id";
176 return $seas_ref_id = (
int) $row->ref_id;
185 $this->lucene = $a_status;
194 $this->max_hits = $a_max_hits;
204 $this->default_operator = $a_op;
209 $this->fragmentSize = $a_size;
219 $this->fragmentCount = $a_count;
238 $this->numSubitems = $a_max;
248 return $this->last_index_date instanceof
ilDateTime ?
249 $this->last_index_date :
255 $this->lucene_item_filter_enabled = $a_status;
271 $this->lucene_item_filter = $a_filter;
276 $this->lucene_offline_filter = $a_stat;
286 $this->lucene_mime_filter = $a_filter;
304 $this->lucene_mime_filter_enabled = $a_stat;
310 $this->last_index_date = $time;
323 $this->user_search = $a_status;
331 $this->show_inactiv_user = $a_visible;
344 $this->show_limited_user = $a_visible;
360 $this->date_filter = $a_filter;
365 $this->setting->set(
'search_max_hits', (
string) $this->
getMaxHits());
366 $this->setting->set(
'search_lucene', (
string) $this->
enabledLucene());
369 $this->setting->set(
'lucene_fragment_size', (
string) $this->
getFragmentSize());
370 $this->setting->set(
'lucene_fragment_count', (
string) $this->
getFragmentCount());
371 $this->setting->set(
'lucene_max_subitems', (
string) $this->
getMaxSubitems());
388 $this->
setMaxHits((
int) $this->setting->get(
'search_max_hits',
'10'));
389 $this->
enableLucene((
bool) $this->setting->get(
'search_lucene',
'0'));
390 $this->
setDefaultOperator((
int) $this->setting->get(
'lucene_default_operator', (
string) self::OPERATOR_AND));
391 $this->
setFragmentSize((
int) $this->setting->get(
'lucene_fragment_size',
"50"));
392 $this->
setFragmentCount((
int) $this->setting->get(
'lucene_fragment_count',
"3"));
393 $this->
setMaxSubitems((
int) $this->setting->get(
'lucene_max_subitems',
"5"));
394 if ($time = $this->setting->get(
'lucene_last_index_time',
'0')) {
399 $this->
setAutoCompleteLength((
int) $this->setting->get(
'auto_complete_length', (
string) $this->getAutoCompleteLength()));
400 $this->
enableLuceneItemFilter((
bool) $this->setting->get(
'lucene_item_filter_enabled', (
string) $this->isLuceneItemFilterEnabled()));
401 $filter = (string) $this->setting->get(
'lucene_item_filter', serialize($this->
getLuceneItemFilter()));
403 $this->
enableLuceneOfflineFilter((
bool) $this->setting->get(
'lucene_offline_filter', (
string) $this->isLuceneOfflineFilterEnabled()));
404 $this->
enableLuceneMimeFilter((
bool) $this->setting->get(
'lucene_mime_filter_enabled', (
string) $this->lucene_item_filter_enabled));
405 $filter = (string) $this->setting->get(
'lucene_mime_filter', serialize($this->
getLuceneMimeFilter()));
408 $this->
enableLuceneUserSearch((
bool) $this->setting->get(
'lucene_user_search', (
string) $this->user_search));
409 $this->
showInactiveUser((
bool) $this->setting->get(
'search_show_inactiv_user', (
string) $this->show_inactiv_user));
410 $this->
showLimitedUser((
bool) $this->setting->get(
'search_show_limited_user', (
string) $this->show_limited_user));
411 $this->
enableDateFilter((
bool) $this->setting->get(
'search_date_filter', (
string) $this->date_filter));
isLuceneMimeFilterEnabled()
Check if lucene mime filter is enabled.
setDefaultOperator(int $a_op)
int $auto_complete_length
static getLuceneItemFilterDefinitions()
Get lucene item filter definitions.
static ilSearchSettings $instance
Interface Observer Contains several chained tasks and infos about them.
getEnabledLuceneItemFilterDefinitions()
Get lucene item filter definitions.
setLuceneItemFilter(array $a_filter)
ilDateTime $last_index_date
setMaxSubitems(int $a_max)
isLuceneItemFilterEnabled()
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
setLastIndexTime(?ilDateTime $time)
getEnabledLuceneMimeFilterDefinitions()
static getLuceneMimeFilterDefinitions()
setFragmentCount(int $a_count)
array $lucene_mime_filter
setLuceneMimeFilter(array $a_filter)
enablePrefixWildcardQuery(bool $a_stat)
bool $lucene_mime_filter_enabled
enableLuceneUserSearch(bool $a_status)
static _getSearchSettingRefId()
Read the ref_id of Search Settings object.
setAutoCompleteLength(int $auto_complete_length)
Class ilObjForumAdministration.
array $lucene_item_filter
enableLucene(bool $a_status)
bool $lucene_item_filter_enabled
showLimitedUser(bool $a_visible)
show user with limited access in user search
enableLuceneItemFilter(bool $a_status)
enableLuceneOfflineFilter(bool $a_stat)
setFragmentSize(int $a_size)
isLuceneUserSearchEnabled()
Check if user search is enabled.
enableDateFilter(bool $a_filter)
showInactiveUser(bool $a_visible)
show inactive user in user search
bool $lucene_offline_filter
isLuceneOfflineFilterEnabled()
enableLuceneMimeFilter(bool $a_stat)
setMaxHits(int $a_max_hits)
isPrefixWildcardQueryEnabled()