ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilLuceneSearcher Class Reference

Reads and parses lucene search results. More...

+ Collaboration diagram for ilLuceneSearcher:

Public Member Functions

 setType ($a_type)
 Set search type. More...
 
 getType ()
 Get type. More...
 
 search ()
 Search
More...
 
 highlight ($a_obj_ids)
 Highlight/Detail query. More...
 
 nextResultPage ()
 get next result page More...
 
 getHighlighter ()
 get highlighter More...
 
 getResult ()
 Get result. More...
 
 getPageNumber ()
 get current page number More...
 

Static Public Member Functions

static getInstance (ilLuceneQueryParser $qp)
 Get singleton instance. More...
 

Data Fields

const TYPE_STANDARD = 1
 
const TYPE_USER = 2
 

Protected Member Functions

 performSearch ()
 search lucene More...
 

Private Member Functions

 __construct ($qp)
 Constructor. More...
 

Private Attributes

 $query_parser = null
 
 $result = null
 
 $highlighter = null
 
 $page_number = 1
 
 $type = self::TYPE_STANDARD
 

Static Private Attributes

static $instance = null
 

Detailed Description

Reads and parses lucene search results.

Author
Stefan Meyer meyer.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Version
$Id$

Definition at line 35 of file class.ilLuceneSearcher.php.

Constructor & Destructor Documentation

◆ __construct()

ilLuceneSearcher::__construct (   $qp)
private

Constructor.

Parameters
objectilLuceneQueryParser
Returns
ilLuceneSearcher

Definition at line 53 of file class.ilLuceneSearcher.php.

54 {
55 $this->result = new ilLuceneSearchResult();
56 $this->result->setCallback(array($this,'nextResultPage'));
57 $this->query_parser = $qp;
58 }
Search result implementing iterator interface.

Member Function Documentation

◆ getHighlighter()

ilLuceneSearcher::getHighlighter ( )

get highlighter

Returns
ilLuceneHighlightResultParser

Definition at line 166 of file class.ilLuceneSearcher.php.

167 {
168 return $this->highlighter;
169 }

References $highlighter.

◆ getInstance()

static ilLuceneSearcher::getInstance ( ilLuceneQueryParser  $qp)
static

◆ getPageNumber()

ilLuceneSearcher::getPageNumber ( )

get current page number

Parameters

return

Definition at line 190 of file class.ilLuceneSearcher.php.

191 {
192 return $this->page_number;
193 }

References $page_number.

◆ getResult()

ilLuceneSearcher::getResult ( )

Get result.

Parameters

return ilLuceneSearchResult

Definition at line 176 of file class.ilLuceneSearcher.php.

177 {
178 if($this->result instanceof ilLuceneSearchResult)
179 {
180 return $this->result;
181 }
182 // TODO Error handling
183 }

References $result.

◆ getType()

ilLuceneSearcher::getType ( )

Get type.

Returns
int

Definition at line 89 of file class.ilLuceneSearcher.php.

References $type.

Referenced by performSearch().

+ Here is the caller graph for this function:

◆ highlight()

ilLuceneSearcher::highlight (   $a_obj_ids)

Highlight/Detail query.

Parameters
array$a_obj_idsArry of obj_ids
Returns
object ilLuceneHighlightResultParser

Definition at line 109 of file class.ilLuceneSearcher.php.

110 {
111 global $ilBench,$ilSetting;
112
113 include_once './Services/Search/classes/Lucene/class.ilLuceneHighlighterResultParser.php';
114
115 // TODO error handling
116 if(!$this->query_parser->getQuery())
117 {
118 return;
119 }
120
121 // Search in combined index
122 $ilBench->start('Lucene','SearchHighlight');
123 try
124 {
125 include_once './Services/WebServices/RPC/classes/class.ilRpcClientFactory.php';
126 $res = ilRpcClientFactory::factory('RPCSearchHandler')->highlight(
127 CLIENT_ID.'_'.$ilSetting->get('inst_id',0),
128 $a_obj_ids,
129 $this->query_parser->getQuery()
130 );
131 }
133 {
134 ilLoggerFactory::getLogger('src')->critical('Highlighting failed with message: ' . $e->getMessage());
136 }
137 catch(Exception $e)
138 {
139 ilLoggerFactory::getLogger('src')->error('Highlighting failed with message: ' . $e->getMessage());
141 }
142
143 include_once './Services/Search/classes/Lucene/class.ilLuceneHighlighterResultParser.php';
144 $this->highlighter = new ilLuceneHighlighterResultParser();
145 $this->highlighter->setResultString($res);
146 $this->highlighter->parse();
147
148 return $this->highlighter;
149 }
static getLogger($a_component_id)
Get component logger.
Parses result XML from lucene search highlight.
static factory($a_package)
Create an XML_RPC2 client instance.
global $ilBench
Definition: ilias.php:18
global $ilSetting
Definition: privfeed.php:40

References $highlighter, $ilBench, $ilSetting, $res, ilRpcClientFactory\factory(), and ilLoggerFactory\getLogger().

+ Here is the call graph for this function:

◆ nextResultPage()

ilLuceneSearcher::nextResultPage ( )

get next result page

Parameters

return

Definition at line 156 of file class.ilLuceneSearcher.php.

157 {
158 $this->page_number++;
159 $this->performSearch();
160 }
performSearch()
search lucene

References performSearch().

+ Here is the call graph for this function:

◆ performSearch()

ilLuceneSearcher::performSearch ( )
protected

search lucene

Returns

Definition at line 199 of file class.ilLuceneSearcher.php.

200 {
201 global $ilBench,$ilSetting;
202
203 // TODO error handling
204 if(!$this->query_parser->getQuery())
205 {
206 return;
207 }
208 $ilBench->start('Lucene','SearchCombinedIndex');
209 try
210 {
211 switch($this->getType())
212 {
213
214 case self::TYPE_USER:
215 include_once './Services/WebServices/RPC/classes/class.ilRpcClientFactory.php';
216 $res = ilRpcClientFactory::factory('RPCSearchHandler')->searchUsers(
217 CLIENT_ID.'_'.$ilSetting->get('inst_id',0),
218 (string) $this->query_parser->getQuery()
219 );
220 break;
221
223 default:
224 include_once './Services/WebServices/RPC/classes/class.ilRpcClientFactory.php';
225 $res = ilRpcClientFactory::factory('RPCSearchHandler')->search(
226 CLIENT_ID.'_'.$ilSetting->get('inst_id',0),
227 (string) $this->query_parser->getQuery(),
228 $this->getPageNumber()
229 );
230 break;
231
232 }
233 ilLoggerFactory::getLogger('src')->debug('Searching for: ' . $this->query_parser->getQuery());
234 }
236 {
237 ilLoggerFactory::getLogger('src')->critical($e->getMessage());
238 return;
239 }
240 catch(Exception $e)
241 {
242 ilLoggerFactory::getLogger('src')->error('Searching failed with message: ' . $e->getMessage());
243 return;
244 }
245
246 // Parse results
247 include_once './Services/Search/classes/Lucene/class.ilLuceneSearchResultParser.php';
248 $parser = new ilLuceneSearchResultParser($res);
249 $parser->parse($this->result);
250 return;
251 }

References $ilBench, $ilSetting, $res, ilRpcClientFactory\factory(), ilLoggerFactory\getLogger(), getType(), TYPE_STANDARD, and TYPE_USER.

Referenced by nextResultPage(), and search().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ search()

ilLuceneSearcher::search ( )

Search

Returns

Definition at line 99 of file class.ilLuceneSearcher.php.

100 {
101 $this->performSearch();
102 }

References performSearch().

+ Here is the call graph for this function:

◆ setType()

ilLuceneSearcher::setType (   $a_type)

Set search type.

Parameters
type$a_type

Definition at line 80 of file class.ilLuceneSearcher.php.

81 {
82 $this->type = $a_type;
83 }

Field Documentation

◆ $highlighter

ilLuceneSearcher::$highlighter = null
private

Definition at line 44 of file class.ilLuceneSearcher.php.

Referenced by getHighlighter(), and highlight().

◆ $instance

ilLuceneSearcher::$instance = null
staticprivate

Definition at line 40 of file class.ilLuceneSearcher.php.

Referenced by getInstance().

◆ $page_number

ilLuceneSearcher::$page_number = 1
private

Definition at line 45 of file class.ilLuceneSearcher.php.

Referenced by getPageNumber().

◆ $query_parser

ilLuceneSearcher::$query_parser = null
private

Definition at line 42 of file class.ilLuceneSearcher.php.

◆ $result

ilLuceneSearcher::$result = null
private

Definition at line 43 of file class.ilLuceneSearcher.php.

Referenced by getResult().

◆ $type

ilLuceneSearcher::$type = self::TYPE_STANDARD
private

Definition at line 46 of file class.ilLuceneSearcher.php.

Referenced by getType().

◆ TYPE_STANDARD

const ilLuceneSearcher::TYPE_STANDARD = 1

Definition at line 37 of file class.ilLuceneSearcher.php.

Referenced by ilSearchAutoComplete\getLuceneList(), and performSearch().

◆ TYPE_USER

const ilLuceneSearcher::TYPE_USER = 2

The documentation for this class was generated from the following file: