ILIAS  release_8 Revision v8.24
ilLuceneSearcher Class Reference

Reads and parses lucene search results. More...

+ Collaboration diagram for ilLuceneSearcher:

Public Member Functions

 setType (int $a_type)
 Set search type. More...
 
 getType ()
 Get type. More...
 
 search ()
 Search. More...
 
 highlight (array $a_obj_ids)
 
 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...
 

Protected Attributes

ilSetting $setting
 

Private Member Functions

 __construct (ilLuceneQueryParser $qp)
 

Private Attributes

ilLuceneQueryParser $query_parser
 
ilLuceneSearchResult $result
 
ilLuceneHighlighterResultParser $highlighter = null
 
int $page_number = 1
 
int $type = self::TYPE_STANDARD
 

Static Private Attributes

static ilLuceneSearcher $instance = null
 

Detailed Description

Reads and parses lucene search results.

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

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

Constructor & Destructor Documentation

◆ __construct()

ilLuceneSearcher::__construct ( ilLuceneQueryParser  $qp)
private

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

51 {
52 global $DIC;
53
54 $this->setting = $DIC->settings();
55 $this->result = new ilLuceneSearchResult();
56 $this->result->setCallback([$this,'nextResultPage']);
57 $this->query_parser = $qp;
58 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
global $DIC
Definition: feed.php:28

References $DIC.

Member Function Documentation

◆ getHighlighter()

ilLuceneSearcher::getHighlighter ( )

get highlighter

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

138 {
139 return $this->highlighter;
140 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilLuceneHighlighterResultParser $highlighter

References $highlighter.

◆ getInstance()

static ilLuceneSearcher::getInstance ( ilLuceneQueryParser  $qp)
static

Get singleton instance.

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

63 : self
64 {
65 if (self::$instance instanceof ilLuceneSearcher) {
66 return self::$instance;
67 }
68 return self::$instance = new ilLuceneSearcher($qp);
69 }
Reads and parses lucene search results.
static ilLuceneSearcher $instance

References $instance.

Referenced by ilSearchAutoComplete\getLuceneList(), ilRepositoryObjectDetailSearch\performLuceneSearch(), ilLuceneAdvancedSearchGUI\performSearch(), ilLuceneSearchGUI\performSearch(), ilLuceneUserSearchGUI\performSearch(), ilSoapObjectAdministration\searchObjects(), ilLuceneAdvancedSearchGUI\showSavedResults(), and ilLuceneSearchGUI\showSavedResults().

+ Here is the caller graph for this function:

◆ getPageNumber()

ilLuceneSearcher::getPageNumber ( )

get current page number

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

153 : int
154 {
155 return $this->page_number;
156 }

References $page_number.

◆ getResult()

ilLuceneSearcher::getResult ( )

Get result.

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

146 {
147 return $this->result;
148 }
ilLuceneSearchResult $result

References $result.

◆ getType()

ilLuceneSearcher::getType ( )

Get type.

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

82 : int
83 {
84 return $this->type;
85 }

References $type.

Referenced by performSearch().

+ Here is the caller graph for this function:

◆ highlight()

ilLuceneSearcher::highlight ( array  $a_obj_ids)
Parameters
int[]$a_obj_ids
Returns
ilLuceneHighlighterResultParser|null

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

101 {
102 if (!$this->query_parser->getQuery()) {
103 return null;
104 }
105
106 // Search in combined index
107 try {
108 $res = ilRpcClientFactory::factory('RPCSearchHandler')->highlight(
109 CLIENT_ID . '_' . $this->setting->get('inst_id', '0'),
110 $a_obj_ids,
111 $this->query_parser->getQuery()
112 );
113 } catch (Exception $e) {
114 ilLoggerFactory::getLogger('src')->error('Highlighting failed with message: ' . $e->getMessage());
116 }
117
118 $this->highlighter = new ilLuceneHighlighterResultParser();
119 $this->highlighter->setResultString($res);
120 $this->highlighter->parse();
121
122 return $this->highlighter;
123 }
static getLogger(string $a_component_id)
Get component logger.
static factory(string $a_package, int $a_timeout=0)
Creates an ilRpcClient instance to our ilServer.
const CLIENT_ID
Definition: constants.php:41
$res
Definition: ltiservices.php:69

References Vendor\Package\$e, $highlighter, $res, CLIENT_ID, ilRpcClientFactory\factory(), and ilLoggerFactory\getLogger().

+ Here is the call graph for this function:

◆ nextResultPage()

ilLuceneSearcher::nextResultPage ( )

get next result page

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

128 : void
129 {
130 $this->page_number++;
131 $this->performSearch();
132 }
performSearch()
search lucene

References performSearch().

+ Here is the call graph for this function:

◆ performSearch()

ilLuceneSearcher::performSearch ( )
protected

search lucene

@noinspection PhpUndefinedMethodInspection

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

161 : void
162 {
163 if (!$this->query_parser->getQuery()) {
164 return;
165 }
166 try {
167 switch ($this->getType()) {
168
169 case self::TYPE_USER:
171 $res = ilRpcClientFactory::factory('RPCSearchHandler')->searchUsers(
172 CLIENT_ID . '_' . $this->setting->get('inst_id', '0'),
173 $this->query_parser->getQuery()
174 );
175 break;
176
178 default:
179 $res = ilRpcClientFactory::factory('RPCSearchHandler')->search(
180 CLIENT_ID . '_' . $this->setting->get('inst_id', '0'),
181 $this->query_parser->getQuery(),
182 $this->getPageNumber()
183 );
184 break;
185
186 }
187 ilLoggerFactory::getLogger('src')->debug('Searching for: ' . $this->query_parser->getQuery());
188 } catch (Exception $e) {
189 ilLoggerFactory::getLogger('src')->error('Searching failed with message: ' . $e->getMessage());
190 return;
191 }
192
193 ilLoggerFactory::getLogger('src')->dump($res);
194
195 // Parse results
196 $parser = new ilLuceneSearchResultParser($res);
197 $parser->parse($this->result);
198 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

References Vendor\Package\$e, $res, CLIENT_ID, 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.

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

91 : void
92 {
93 $this->performSearch();
94 }

References performSearch().

+ Here is the call graph for this function:

◆ setType()

ilLuceneSearcher::setType ( int  $a_type)

Set search type.

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

74 : void
75 {
76 $this->type = $a_type;
77 }

Field Documentation

◆ $highlighter

ilLuceneHighlighterResultParser ilLuceneSearcher::$highlighter = null
private

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

Referenced by getHighlighter(), and highlight().

◆ $instance

ilLuceneSearcher ilLuceneSearcher::$instance = null
staticprivate

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

Referenced by getInstance().

◆ $page_number

int ilLuceneSearcher::$page_number = 1
private

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

Referenced by getPageNumber().

◆ $query_parser

ilLuceneQueryParser ilLuceneSearcher::$query_parser
private

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

◆ $result

ilLuceneSearchResult ilLuceneSearcher::$result
private

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

Referenced by getResult().

◆ $setting

ilSetting ilLuceneSearcher::$setting
protected

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

◆ $type

int 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: