ILIAS  release_8 Revision v8.19-1-g4e8f2f9140c
All Data Structures Namespaces Files Functions Variables Modules Pages
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.

References $DIC.

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  }
global $DIC
Definition: feed.php:28
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

Member Function Documentation

◆ getHighlighter()

ilLuceneSearcher::getHighlighter ( )

get highlighter

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

References $highlighter.

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

◆ getInstance()

static ilLuceneSearcher::getInstance ( ilLuceneQueryParser  $qp)
static

Get singleton instance.

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

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

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.
+ Here is the caller graph for this function:

◆ getPageNumber()

ilLuceneSearcher::getPageNumber ( )

get current page number

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

References $page_number.

Referenced by performSearch().

153  : int
154  {
155  return $this->page_number;
156  }
+ Here is the caller graph for this function:

◆ getResult()

ilLuceneSearcher::getResult ( )

Get result.

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

References $result.

146  {
147  return $this->result;
148  }
ilLuceneSearchResult $result
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ getType()

ilLuceneSearcher::getType ( )

Get type.

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

References $type.

Referenced by performSearch().

82  : int
83  {
84  return $this->type;
85  }
+ 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.

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

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());
115  return new ilLuceneHighlighterResultParser();
116  }
117 
118  $this->highlighter = new ilLuceneHighlighterResultParser();
119  $this->highlighter->setResultString($res);
120  $this->highlighter->parse();
121 
122  return $this->highlighter;
123  }
$res
Definition: ltiservices.php:69
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
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
ilLuceneHighlighterResultParser $highlighter
+ Here is the call graph for this function:

◆ nextResultPage()

ilLuceneSearcher::nextResultPage ( )

get next result page

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

References performSearch().

128  : void
129  {
130  $this->page_number++;
131  $this->performSearch();
132  }
performSearch()
search lucene
+ Here is the call graph for this function:

◆ performSearch()

ilLuceneSearcher::performSearch ( )
protected

search lucene

PhpUndefinedMethodInspection

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

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

Referenced by nextResultPage(), and search().

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 
177  case self::TYPE_STANDARD:
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  }
$res
Definition: ltiservices.php:69
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
getPageNumber()
get current page number
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ 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.

References performSearch().

91  : void
92  {
93  $this->performSearch();
94  }
performSearch()
search lucene
+ 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.

◆ $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().

◆ TYPE_USER

const ilLuceneSearcher::TYPE_USER = 2

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

Referenced by ilLuceneUserSearchGUI\performSearch().


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