ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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 28 of file class.ilLuceneSearcher.php.

Constructor & Destructor Documentation

◆ __construct()

ilLuceneSearcher::__construct ( ilLuceneQueryParser  $qp)
private

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

44 {
45 global $DIC;
46
47 $this->setting = $DIC->settings();
48 $this->result = new ilLuceneSearchResult();
49 $this->result->setCallback([$this,'nextResultPage']);
50 $this->query_parser = $qp;
51 }
Search result implementing iterator interface.
global $DIC
Definition: shib_login.php:26

References $DIC.

Member Function Documentation

◆ getHighlighter()

ilLuceneSearcher::getHighlighter ( )

get highlighter

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

131 {
132 return $this->highlighter;
133 }
Parses result XML from lucene search highlight.
ilLuceneHighlighterResultParser $highlighter

References $highlighter.

◆ getInstance()

static ilLuceneSearcher::getInstance ( ilLuceneQueryParser  $qp)
static

Get singleton instance.

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

56 : self
57 {
58 if (self::$instance instanceof ilLuceneSearcher) {
59 return self::$instance;
60 }
61 return self::$instance = new ilLuceneSearcher($qp);
62 }
Reads and parses lucene search results.
static ilLuceneSearcher $instance

References $instance.

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

+ Here is the caller graph for this function:

◆ getPageNumber()

ilLuceneSearcher::getPageNumber ( )

get current page number

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

146 : int
147 {
148 return $this->page_number;
149 }

References $page_number.

◆ getResult()

ilLuceneSearcher::getResult ( )

Get result.

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

139 {
140 return $this->result;
141 }
ilLuceneSearchResult $result

References $result.

◆ getType()

ilLuceneSearcher::getType ( )

Get type.

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

75 : int
76 {
77 return $this->type;
78 }

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 93 of file class.ilLuceneSearcher.php.

94 {
95 if (!$this->query_parser->getQuery()) {
96 return null;
97 }
98
99 // Search in combined index
100 try {
101 $res = ilRpcClientFactory::factory('RPCSearchHandler')->highlight(
102 CLIENT_ID . '_' . $this->setting->get('inst_id', '0'),
103 $a_obj_ids,
104 $this->query_parser->getQuery()
105 );
106 } catch (Exception $e) {
107 ilLoggerFactory::getLogger('src')->error('Highlighting failed with message: ' . $e->getMessage());
109 }
110
111 $this->highlighter = new ilLuceneHighlighterResultParser();
112 $this->highlighter->setResultString($res);
113 $this->highlighter->parse();
114
115 return $this->highlighter;
116 }
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 121 of file class.ilLuceneSearcher.php.

121 : void
122 {
123 $this->page_number++;
124 $this->performSearch();
125 }
performSearch()
search lucene

References performSearch().

+ Here is the call graph for this function:

◆ performSearch()

ilLuceneSearcher::performSearch ( )
protected

search lucene

@noinspection PhpUndefinedMethodInspection

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

154 : void
155 {
156 if (!$this->query_parser->getQuery()) {
157 return;
158 }
159 try {
160 switch ($this->getType()) {
161 case self::TYPE_USER:
163 $res = ilRpcClientFactory::factory('RPCSearchHandler')->searchUsers(
164 CLIENT_ID . '_' . $this->setting->get('inst_id', '0'),
165 $this->query_parser->getQuery()
166 );
167 break;
168
170 default:
171 $res = ilRpcClientFactory::factory('RPCSearchHandler')->search(
172 CLIENT_ID . '_' . $this->setting->get('inst_id', '0'),
173 $this->query_parser->getQuery(),
174 $this->getPageNumber()
175 );
176 break;
177 }
178 ilLoggerFactory::getLogger('src')->debug('Searching for: ' . $this->query_parser->getQuery());
179 } catch (Exception $e) {
180 ilLoggerFactory::getLogger('src')->error('Searching failed with message: ' . $e->getMessage());
181 return;
182 }
183
184 ilLoggerFactory::getLogger('src')->dump($res);
185
186 // Parse results
187 $parser = new ilLuceneSearchResultParser($res);
188 $parser->parse($this->result);
189 }

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 84 of file class.ilLuceneSearcher.php.

84 : void
85 {
86 $this->performSearch();
87 }

References performSearch().

+ Here is the call graph for this function:

◆ setType()

ilLuceneSearcher::setType ( int  $a_type)

Set search type.

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

67 : void
68 {
69 $this->type = $a_type;
70 }

Field Documentation

◆ $highlighter

ilLuceneHighlighterResultParser ilLuceneSearcher::$highlighter = null
private

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

Referenced by getHighlighter(), and highlight().

◆ $instance

ilLuceneSearcher ilLuceneSearcher::$instance = null
staticprivate

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

Referenced by getInstance().

◆ $page_number

int ilLuceneSearcher::$page_number = 1
private

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

Referenced by getPageNumber().

◆ $query_parser

ilLuceneQueryParser ilLuceneSearcher::$query_parser
private

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

◆ $result

ilLuceneSearchResult ilLuceneSearcher::$result
private

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

Referenced by getResult().

◆ $setting

ilSetting ilLuceneSearcher::$setting
protected

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

◆ $type

int ilLuceneSearcher::$type = self::TYPE_STANDARD
private

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

Referenced by getType().

◆ TYPE_STANDARD

const ilLuceneSearcher::TYPE_STANDARD = 1

Definition at line 30 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: