ILIAS  trunk Revision v11.0_alpha-1761-g6dbbfa7b760
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator 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 28 of file class.ilLuceneSearcher.php.

Constructor & Destructor Documentation

◆ __construct()

ilLuceneSearcher::__construct ( ilLuceneQueryParser  $qp)
private

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

References $DIC.

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

Member Function Documentation

◆ getHighlighter()

ilLuceneSearcher::getHighlighter ( )

get highlighter

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

References $highlighter.

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

◆ getInstance()

static ilLuceneSearcher::getInstance ( ilLuceneQueryParser  $qp)
static

Get singleton instance.

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

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

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

◆ getPageNumber()

ilLuceneSearcher::getPageNumber ( )

get current page number

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

References $page_number.

Referenced by performSearch().

146  : int
147  {
148  return $this->page_number;
149  }
+ Here is the caller graph for this function:

◆ getResult()

ilLuceneSearcher::getResult ( )

Get result.

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

References $result.

139  {
140  return $this->result;
141  }
ilLuceneSearchResult $result
Search result implementing iterator interface.

◆ getType()

ilLuceneSearcher::getType ( )

Get type.

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

References $type.

Referenced by performSearch().

75  : int
76  {
77  return $this->type;
78  }
+ 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.

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

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());
108  return new ilLuceneHighlighterResultParser();
109  }
110 
111  $this->highlighter = new ilLuceneHighlighterResultParser();
112  $this->highlighter->setResultString($res);
113  $this->highlighter->parse();
114 
115  return $this->highlighter;
116  }
$res
Definition: ltiservices.php:66
Parses result XML from lucene search highlight.
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.
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
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 121 of file class.ilLuceneSearcher.php.

References performSearch().

121  : void
122  {
123  $this->page_number++;
124  $this->performSearch();
125  }
performSearch()
search lucene
+ Here is the call graph for this function:

◆ performSearch()

ilLuceneSearcher::performSearch ( )
protected

search lucene

PhpUndefinedMethodInspection

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

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

Referenced by nextResultPage(), and search().

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 
169  case self::TYPE_STANDARD:
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  }
$res
Definition: ltiservices.php:66
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
+ 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.

References performSearch().

84  : void
85  {
86  $this->performSearch();
87  }
performSearch()
search lucene
+ 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.

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

◆ TYPE_USER

const ilLuceneSearcher::TYPE_USER = 2

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

Referenced by ilLuceneUserSearchGUI\performSearch().


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