ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilMailLuceneSearcher.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3
10{
14 protected $query_parser;
15
19 protected $result;
20
25 {
26 $this->query_parser = $query_parser;
27 $this->result = $result;
28 }
29
35 public function search($user_id, $mail_folder_id)
36 {
41 global $ilBench, $ilSetting;
42
43 if(!$this->query_parser->getQuery())
44 {
45 throw new ilException('mail_search_query_missing');
46 }
47
48 $ilBench->start('Mail', 'LuceneSearch');
49 try
50 {
51 include_once 'Services/WebServices/RPC/classes/class.ilRpcClientFactory.php';
52 $xml = ilRpcClientFactory::factory('RPCSearchHandler')->searchMail(
53 CLIENT_ID . '_' . $ilSetting->get('inst_id', 0),
54 (int)$user_id,
55 (string)$this->query_parser->getQuery(),
56 (int)$mail_folder_id
57 );
58 }
60 {
61 $ilBench->stop('Mail', 'LuceneSearch');
62 require_once './Services/Logging/classes/public/class.ilLoggerFactory.php';
63 ilLoggerFactory::getLogger('mail')->critical($e->getMessage());
64 throw $e;
65 }
66 catch(Exception $e)
67 {
68
69 $ilBench->stop('Mail', 'LuceneSearch');
70 require_once './Services/Logging/classes/public/class.ilLoggerFactory.php';
71 ilLoggerFactory::getLogger('mail')->critical($e->getMessage());
72 throw $e;
73 }
74 $ilBench->stop('Mail', 'LuceneSearch');
75
76 include_once 'Services/Mail/classes/class.ilMailSearchLuceneResultParser.php';
77 $parser = new ilMailSearchLuceneResultParser($this->result, $xml);
78 $parser->parse();
79 }
80}
Base class for ILIAS Exception handling.
static getLogger($a_component_id)
Get component logger.
__construct(ilLuceneQueryParser $query_parser, ilMailSearchResult $result)
static factory($a_package)
Create an XML_RPC2 client instance.
global $ilBench
Definition: ilias.php:18
global $ilSetting
Definition: privfeed.php:40