Hinweis: Sie sind auf den Seiten der Moodle 3.1 Dokumentation. Die Dokumentation der aktuellsten Moodle-Version finden Sie hier: Globale Suche.

Globale Suche: Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
(14 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Weitere Funktionen}}
{{Weitere Funktionen}}
{{Neu}}
{{Neu}}
{{Zum Überarbeiten}}


==Was bedeutet Globale Suche?==
==Was bedeutet Globale Suche?==
*Mit der Globalen Suche können Sie alle Bereiche der Moodle-Site durchsuchen, auf die Sie Zugriff haben. Z.B. können Kursteilnehmer/innen ihre Kurse nach Unterlagen durchsuchen oder Trainer/innen ihhre Kurse nach Aktivitäten.
*Mit der Globalen Suche können Sie alle Bereiche der Moodle-Site durchsuchen, auf die Sie Zugriff haben. Z.B. können Kursteilnehmer/innen ihre Kurse nach Unterlagen durchsuchen oder Trainer/innen ihre Kurse nach Aktivitäten.
*Die Moodle-Administration muss die Globale Suche systemweit aktivieren. Dann erscheint rechts oben neben Ihrem Namen im [[Nutzermenü]] ein Suchsymbol (Lupe).  
*Die Moodle-Administration muss die Globale Suche systemweit aktivieren. Dann erscheint rechts oben neben Ihrem Namen im [[Nutzermenü]] ein Suchsymbol (Lupe).  
*Sie können auch einen [[Globale-Suche-Block]] auf der Kursseite hinzufügen, um von dort die Suche zu ermöglichen.
*Sie können auch einen [[Globale-Suche-Block]] auf der Kursseite hinzufügen, um von dort die Suche zu ermöglichen.


==What can I search for?==
==Wonach kann ich suchen?==
You can search for your courses, activities information and some activities contents like forum posts, book chapters, glossary entries or collaborative wikis pages. We will add more contents in future Moodle versions. Developers interested in adding plugin's contents to global search may be interested in looking at the [https://docs.moodle.org/dev/Search_API Search API].
Suchen können nach Kursen, beschreibungen von Aktivitäten oder Arbeitsmaterialien und zum Teil nach Inhalten von Aktivitäten suchen (z.B. nach Forumsbeiträgen, Buchkapiteln, Glossareinträgen oder Wiki-Seiten).


==How does it work?==
In Zukunft sollen weitere Inhalte hinzukommen, siehe Entwickler-Dokumentation [https://docs.moodle.org/dev/Search_API Search API] (englisch).
*Click the search icon by the user menu and type a search term into the box that appears, or type into the box in the [[Global search block]] if enabled.
*On the next screen, you can simply click the search button to search everywhere, or expand the Filter to search in specific areas:


[[File:NFFilteringGlobalSearch2.png|thumb|center|600px|Filtering the search]]
==Wie funktioniert die Globale Suche?==
*Klicken Sie auf das Such-Symbol (Lupe) neben Ihrem Namen rechts oben im Nutzermenü und geben Sie den Suchbegriff in das Textfeld ein. Oder nutzen Sie das Such-feld im [[Globale-Suche-Block]], falls dieser auf der Kursseite verfügbar ist.
*Auf der nächsten Seite klicken Sie auf den Buttn ''Suchen!'' oder Sie klappen den Filter für die erweiterte Suche auf.
*Es werden Suchergebnisse aus allen Bereichen von Moodle angezeigt, auf die Sie Zugriff haben.


*You will then see results displayed from all areas of Moodle you have access to:
===Solr-Funktionalitäten===
Sie können Ihre Suchergebnisse verbessern, indem Sie folgende Funktionalitäten der Suchmaschine '''Solr''' nutzen:
*Spezifizieren Sie das Feld, nach dem gesucht wird, indem Sie ein Präfix voranstellen: ''title:, content:, name:'' oder ''intro:''. Z.B. wird bei der Eingabe ''title:Neu'' nach Ergebnissen gesucht, in denen das Wort ''Neu'' im Titel vorkommt.
*Nutzen Sie die logischen Operatoren ''AND, OR'' oder ''NOT'', um Schlüsselwörter zu kombinieren oder auszuschließen.
*Verwenden Sie Jokerzeichen im Schlüselwort: * als Platzhalter für mehrere Zeichen, ? als Platzhalter für ein Zeichen.
*Verwenden Sie das Ähnlichkeitszeichen ~: Z.B. liefert die Eingabe ''mood~2'' das Ergebnis "moodle" (2 Buchstaben Unterschied zu "mood"), die Eingabe ''Moodle Australia~3'' liefert die Ergebnisse, die "Moodle HQ in Perth, Australia" enthalten (der gesuchte Ausdruck ist in 3 Worten des Suchergebnissen enthalten)
*Nutzen Sie das Zeichen ^, um Suchbegriffe zu verstärken. Z.B. liefert "Perth Australia"^5 "Australia" Suichergebnisse, bei denen "Perth Australia" eine stärkere Relevanz hat.


[[File:31GSResults2a.png|thumb|center|600px|Search results]]
==Wie wird die Globale Suche eingerichtet?==


===Solr search query features===
'''Hinweis''': Die Globale Suche benötigt eine Suchmaschine. Weiter unten finden Sie eine Anleitung, wie Sie die Suchmaschine Solr und die zugehörige PHP-Erweiterung auf Ihrem Moodle-Server installieren. Wenn Sie eine eigene Suchmaschine programmieren wollen, finden Sie detaillierte Informationen in der Entwickler-Dokumentation [https://docs.moodle.org/dev/Search_engines Developer docs on Search engine plugins] (englisch). Wir empfehlen, erst die Suchmaschine einzurichten und die Moodle-Inhalte zu indizieren, bevor Sie die Globale Suche aktivieren.


You can improve your search using any of the following search query features:
===Solr einrichten===


* Specifying the field to be searched by prefixing the search query with 'title:', 'content:', 'name:', or 'intro:' e.g.'title:news' returns results with the word 'news' in the title
====Allgemeines====
* Boolean operators ('AND', 'OR', 'NOT') to combine or exclude keywords
* Wildcard characters ('*' or '?' ) to represent characters in the search query
* Proximity searches ('~') e.g. mood~2 returns "moodle" (2 letters away from "mood"), Moodle Australia~3 returns results containing "Moodle HQ in Perth, Australia" (the queried terms were within 3 words of each other)
* Boosting terms ('^') to boost certain words or phrases e.g. "Perth Australia"^5 "Australia" will return results with the phrase "Perth Australia" as more relevant.


Note: The above features are only available when using the Solr search engine.
* Auf der Seite ''[[Einstellungen-Block|Einstellungen]] > Website-Administration > Plugins > Suchen > Globale Suche verwalten'' wählen Sie ''Solr'' im Abschnitt ''Suchmaschine'' aus. Markieren Sie außerdem im Abschnitt ''Verfügbare Bereiche zur die Bereiche in Moodle, die durchsucht werden sollen.
* Auf der Seite ''[[Einstellungen-Block|Einstellungen]] > Website-Administration > Plugins > Suchen > Solr'' konfigurieren Sie die Suchmaschine: Setzen Sie ''Hostname'' auf ''localhost'', ''Port'' auf ''8983'' und ''Indexname'' auf ''moodle' (Name des Indexes in Solr)
* Wenn Sie Solr zusammen mit SSL-Verschlüsselung verwenden, müssen Sie Moodle entsprechend konfigurieren (das ist wichtig, wenn Solr nicht auf dem Server installiert ist, auf dem der Webserver von Moodle läuft).
:*Sie benötigen ein Key-File und ein CACert-File, beide im .pem Format auf Ihrem Moodle-Server und lesbar für den PHP-Prozess.
:*Gehen Sie auf die Seite ''[[Einstellungen-Block|Einstellungen]] > Website-Administration > Plugins > Suchen > Solr''.
:*Setzen Sie die Einstellung ''Sicherer Modus'' auf ''Ja''.
:*Tragen Sie im Textfeld ''SSL Zertifikat'' den Pfad zum CACert-File ein.
:*Tragen Sie im Textfeld ''SSL Key'' den Pfad zum Key-File ein.
:*Tragen Sie im Textfeld ''SSL Key Password'' das Passwort für den SSL-Schlüssel ein.
* Anschließend müssen Sie den Solr-Index mit den Daten Ihrer Moodle-Site füllen. Gehen Sie dazu auf die Seite ''[[Einstellungen-Block|Einstellungen]] > Website-Administration >  Berichte > Info zur globalen Suche'' oder rufen Sie das CLI-Skript  ''moodle/search/cli/indexer.php''. Für große Moodle-Systeme empfehlen wir die Nutzung des CLI-Skripts:
    # sudo -u www-run php search/cli/indexer.php --force
*Aktivieren Sie abschließend die Globale Suche auf der Seite ''[[Einstellungen-Block|Einstellungen]] > Website-Administration > Zusatzoptionen''.


==How is it set up?==
====Indizierung====


{{Note|Global search needs a search engine. Instructions for the installing the PHP Solr extension and a Solr server are below. See the [https://docs.moodle.org/dev/Search_engines Developer docs on Search engine plugins] if you wish to write your own. It's recommended you set everything up first, index the site contents ''and only then'' enable Global search.}}
Solr kann die inhalte von Dateien indizieren, die z.B. als Arbeitsmaterialien oder Forumsanhänge in Moodle bereitgestellt werden. Dabei wird die [https://tika.apache.org/ Tika] Suchmaschine verwendet, die zusammen mit Solr ausgeliefert wird.
Wenn Sie diese Funktionalität verwenden wollen:
* Gehen Sie auf die Seite  ''[[Einstellungen-Block|Einstellungen]] > Website-Administration > Plugins > Suchen> Solr'' und markieren Sie die Checkbox ''Dateiindizierung aktivieren''.
* Setzen Sie den Wert für ''Maximale Dateigröße zur Indizierung (kB)'' (der Standardwert ist 2097152 kB bzw. 2GB)
* Dateien, die größer sind, werden nicht von Solr indiziert, der Dateiname wird jedoch indiziert.


===Setting up Solr===
===Solr installieren===
Sie benötigen die PHP-Erweiterung für Solr. Die aktuelle Version können Sie auf der Seite [http://pecl.php.net/package/solr http://pecl.php.net/package/solr] herunterladen. Sie benötigen mindestens die Version PECL Solr 2.1 für PHP 5 bzw. PECL Solr 2.4 für PHP 7.


====General Setup====
Im folgenden sind die Installationsschritte für den Apache Webserver beschrieben.
 
# Set the feature up in ''Site administration > Plugins > Search > Manage global search'' by selecting Solr as the search engine and ticking search area checkboxes as required
# In ''Site administration > Plugins > Search > Solr'', set '''Host name''' to localhost, '''Port''' to 8983 and '''Index name''' to 'moodle' (the name of the index in Solr)
# If you are using Solr with SSL encryption, you will need to configure Moodle as such. This is important if solr is not installed in the web server server.
## You will need a separate key file and cacert file, both in pem format, located on your server Moodle, and readable by the PHP process.
## Go to ''Site administration > Plugins > Search > Solr''
## Set '''Secure mode''' to Yes
## '''SSL certificate''' to /path/to/certs/solr-ssl.cacert.pem
## '''SSL key''' to /path/to/certs/solr-ssl.key.pem
## '''SSL key Password''' to The password used to lock the SSL Key
## '''SSL CA certificates name''' to /path/to/certs/solr-ssl.cacert.pem
# You now need to populate the created Solr index with your site's data. You can do it via the web interface by going to ''Site administration > Reports > Global search info'' or from the CLI by running the <tt>search/cli/indexer.php</tt> script. The CLI script is the recommended option for big sites.<br><code># sudo -u www-run php search/cli/indexer.php --force</code>
# Enable Global search in ''Site administration > Advanced features''
 
====File Indexing====
 
Solr has the ability to index the contents of files, such as File resources and attachments to Forum posts. This uses the [https://tika.apache.org/ Tika] engine which comes bundled with Solr. To enable this feature:
# In ''Site administration > Plugins > Search > Solr'' enable the checkbox '''Enable file indexing'''
# Set '''Maximum file size to index (kB)''' to some value - the default is '''2097152''' (2GB)
#* Files larger than this limit will not be sent for Solr for indexing, but the file name will still be indexed.
 
===How to install Solr===
 
You need PHP Solr extension installed. You can download the official latest versions from [http://pecl.php.net/package/solr](http://pecl.php.net/package/solr) The minimum required version is PECL Solr 2.1 for PHP 5 branch and PECL Solr 2.4 for PHP 7 branch.
 
Basic installation steps (using apache web server):


==== Linux (Debian/Ubuntu) ====
==== Linux (Debian/Ubuntu) ====
With PHP5.x
Unter PHP5.x:
     sudo apt-get install libpcre3-dev libxml2-dev libcurl4-openssl-dev
     sudo apt-get install libpcre3-dev libxml2-dev libcurl4-openssl-dev
     sudo apt-get install php5-dev
     sudo apt-get install php5-dev
Zeile 77: Zeile 69:
     sudo service apache2 restart
     sudo service apache2 restart


With PHP 7
Unter PHP 7:
     sudo apt-get install libpcre3-dev libxml2-dev libcurl4-openssl-dev
     sudo apt-get install libpcre3-dev libxml2-dev libcurl4-openssl-dev
     sudo apt-get install php7.0-dev
     sudo apt-get install php7.0-dev
Zeile 88: Zeile 80:
==== Linux (Redhat/Centos7) ====
==== Linux (Redhat/Centos7) ====


===== Using built in php5 packages =====
Bei Verwendung von php5:
   yum install php-pecl-solr2
   yum install php-pecl-solr2
   service httpd restart
   service httpd restart


===== Using 3rd party php7 packages (webtactic) =====
Bei Verwendung von php7:
   yum install libxml2-devel pcre-devel libcurl-devel php70w-devel php70w-pear
   yum install libxml2-devel pcre-devel libcurl-devel php70w-devel php70w-pear
   pecl install solr
   pecl install solr
Zeile 98: Zeile 90:
   service httpd restart
   service httpd restart


==== OSX using macports ====
==== OSX mit macports ====


     sudo port install apache-solr4
     sudo port install apache-solr4
     sudo port install php54-solr
     sudo port install php54-solr


==== OSX using homebrew ====
==== OSX mit homebrew ====


     brew install homebrew/php/php56-solr
     brew install homebrew/php/php56-solr
Zeile 109: Zeile 101:
==== Windows ====
==== Windows ====


Install the pecl package as usual. (This has not yet been tested.)
Installieren Sie das pecl Paket (noch nicht getestet).


==== The Solr server ====
==== Der Solr-Server ====


Moodle 3.1 supports Solr server from 4.0 onwards, although you can only use the Solr schema setup script that we provide with Moodle from Solr 5. The latest Solr 5 available version is the recommended one; the same will apply to Solr 6 once it is released.  
Moodle 3.1 unterstützt den Solr-Server ab Version 4.0. Das Solr Schema Setup Skript, das mit Moodle ausgeliefert wird, funktioniert jedoch nur für Solr 5. Die empfohlene Version ist Solr 5 (bzw. Solr 6 sobald diese verfügbar ist).


Note that for medium/large sites you may need to increase maxBooleanClauses setting. In [https://tracker.moodle.org/browse/MDL-54992 MDL-54992] we are working on an alternative way to query the server.  
Für große Moodle-Sites müssen Sie den Wert von ''maxBooleanClauses'' erhöhen. Wir arbeiten jedoch an einer alternativen Server-Abfrage, siehe MDL-54992.  
   
   
The following example snippet (feel free to copy & paste into a .sh script with execution permissions) will download Solr 5.4.1 (replace it with latest 5.x) in the current directory, start the solr server and create an index in it named '''moodle''' to add moodle data to it.
Der folgende Code lädt Solr 5.4.1 im aktuellen Verzeichnis herunter (ersetzen Sie diese Zahl durch die aktuelle Solr-Versionsnummer), startet den Solr-Server und legt einen Index ''moodle'' an, in dem die Moodle-Daten abgelegt werden.


     #!/bin/bash
     #!/bin/bash
Zeile 140: Zeile 132:
     # - "/yourdirectory/solrdir/bin/solr stop" from CLI to stop the server.
     # - "/yourdirectory/solrdir/bin/solr stop" from CLI to stop the server.


=====Solr 5/6 schema setup=====
=====Solr 5/6 Schema Setup=====
Moodle verwendet das Schema Interface von Solr, um die nötigen Felder zu installieren. Auf der Seite ''[[Einstellungen-Block|Einstellungen]] > Website-Administration > Plugins > Suchen > Globale Suche verwalten'' finden Sie eine Anleitung, was zu tun ist.


Moodle will use Solr's managed schema interface to install the required fields. You will be directed on what to do from the Manage global search page.
Für sehr große und viel frequntierte Moodle-Sites empfehlen wir, das Feld ''_text_''  und die zugehörige Anweisung im Solr Schema manuell zu löschen. Dieses Feld wird von Moodle nicht verwendet, es macht jedoch die Indizierung erheblichlangsamer .


For very large or busy sites, it is recommended that you manually remove the '''_text_''' field, and associated copy directive from, the default Solr schema. This field is not used by Moodle, and will significantly slow indexing, and increase the size of the resulting Solr core.
=====Solr 4 Schema Setup=====
 
Sie können das Schema Setup Skript nicht zusammen mit dem Solr-Server 4 verwenden. Die folgenden Feld-Beschreibungen sind der Dokumentation ''moodle/search/classes/document.php'' entnommen:
=====Solr 4 schema setup=====
 
You cannot  use the schema setup script when using a Solr 4 server. If you really want to use the Solr 4x branch, here are the field types descriptions:
 
Extracted from search/classes/document.php


{| class="nicetable"
{| class="nicetable"
|-
|-
! Field name
! Feldname
! Field type
! Feldtyp
! Stored
! Gespeichert
! Indexed
! Indiziert
! Query field
! Abfragefeld
|-
|-
| id
| id
Zeile 269: Zeile 257:
|}
|}


=====Memory and File indexing considerations=====
=====Anmerkungen zum Speicher und zur Dateiindizierung=====
 
Für große Moodle-Systeme und insbesondere bei Verwendung der Dateiindizierung ist es eine gute Idee, dem Solr-Server viel Speicher zu geben, etwa 10-2 0GB. Um dem Solr-Server mehr als den standardmäßig vorgesehenen 512 MB RAm zu geben, verwenden Sie beim Starten die ''-m'' Option:  
For large sites, and particularly if you are using the File indexing feature, it's a good idea to give Solr plenty of memory, eg aound 10-20GB. To start Solr with more than its default 512MB of RAM, use the ''-m'' option:  
  solr start -m 12g
  solr start -m 12g


See the documents for your version of Solr on how to increases memory when Solr is started automatically.
Wie man den Speicher erhöht, wenn Solr automatisch gestartet wird, lesen Sie in der Dokumentation Ihrer Solr-Version nach.
 
=====Too many boolean clauses error=====


Because of the way Moodle handles permissions for searches, if you have non-admin users with access to a large number of activities (>1000), they may an error similar to the following:
=====Fehler: Zu viele Boolsche Ausdrücke=====
Wenn in Ihrer Moodle-Site Nutzer/innen ohne Admin-Rechte Zugriff auf zu viele Aktivitäten (mehr als 1000) haben, dann kann folgender Fehler auftreten:


     The query you provided could not be parsed by the search engine: org.apache.solr.search.SyntaxError: Cannot parse  
     The query you provided could not be parsed by the search engine: org.apache.solr.search.SyntaxError: Cannot parse  
Zeile 284: Zeile 270:
     too many boolean clauses
     too many boolean clauses


To correct this, you need to increase the ''maxBooleanClauses'' setting in your Solr core. The setting is located in ''corename/conf/solrconfig.xml''.
In diesem Fall müssen Sie den Wert von ''maxBooleanClauses'' in ''corename/conf/solrconfig.xml'' erhöhen.
 
In der Konfigurationsdatei finden Sie folgenden wichtigen Hinweis:


This important note is included in the config file:
     ** WARNING **
     ** WARNING **
      
      
Zeile 294: Zeile 281:
     be based on the last SolrCore to be initialized.
     be based on the last SolrCore to be initialized.


This means that for consistent behavior you should update this value for all cores in the Solr server.
Das bedeutet, dass Sie den Wert in allen Cores im Solr-Server aktualisieren müssen.


==See also==
==Siehe auch==


* [https://moodle.org/mod/forum/discuss.php?d=334938 Global search doesn't index plugins?] forum discussion
* [https://moodle.org/mod/forum/discuss.php?d=334938 Global search doesn't index plugins?] - Diskussionsbeitrag im Kurs ''Using Moodle'' auf moodle.org


[[en:Global search]]
[[en:Global search]]
[[Category:ToDo]]

Version vom 6. September 2016, 13:22 Uhr

Neu
in Moodle 3.1!


Was bedeutet Globale Suche?

  • Mit der Globalen Suche können Sie alle Bereiche der Moodle-Site durchsuchen, auf die Sie Zugriff haben. Z.B. können Kursteilnehmer/innen ihre Kurse nach Unterlagen durchsuchen oder Trainer/innen ihre Kurse nach Aktivitäten.
  • Die Moodle-Administration muss die Globale Suche systemweit aktivieren. Dann erscheint rechts oben neben Ihrem Namen im Nutzermenü ein Suchsymbol (Lupe).
  • Sie können auch einen Globale-Suche-Block auf der Kursseite hinzufügen, um von dort die Suche zu ermöglichen.

Wonach kann ich suchen?

Suchen können nach Kursen, beschreibungen von Aktivitäten oder Arbeitsmaterialien und zum Teil nach Inhalten von Aktivitäten suchen (z.B. nach Forumsbeiträgen, Buchkapiteln, Glossareinträgen oder Wiki-Seiten).

In Zukunft sollen weitere Inhalte hinzukommen, siehe Entwickler-Dokumentation Search API (englisch).

Wie funktioniert die Globale Suche?

  • Klicken Sie auf das Such-Symbol (Lupe) neben Ihrem Namen rechts oben im Nutzermenü und geben Sie den Suchbegriff in das Textfeld ein. Oder nutzen Sie das Such-feld im Globale-Suche-Block, falls dieser auf der Kursseite verfügbar ist.
  • Auf der nächsten Seite klicken Sie auf den Buttn Suchen! oder Sie klappen den Filter für die erweiterte Suche auf.
  • Es werden Suchergebnisse aus allen Bereichen von Moodle angezeigt, auf die Sie Zugriff haben.

Solr-Funktionalitäten

Sie können Ihre Suchergebnisse verbessern, indem Sie folgende Funktionalitäten der Suchmaschine Solr nutzen:

  • Spezifizieren Sie das Feld, nach dem gesucht wird, indem Sie ein Präfix voranstellen: title:, content:, name: oder intro:. Z.B. wird bei der Eingabe title:Neu nach Ergebnissen gesucht, in denen das Wort Neu im Titel vorkommt.
  • Nutzen Sie die logischen Operatoren AND, OR oder NOT, um Schlüsselwörter zu kombinieren oder auszuschließen.
  • Verwenden Sie Jokerzeichen im Schlüselwort: * als Platzhalter für mehrere Zeichen, ? als Platzhalter für ein Zeichen.
  • Verwenden Sie das Ähnlichkeitszeichen ~: Z.B. liefert die Eingabe mood~2 das Ergebnis "moodle" (2 Buchstaben Unterschied zu "mood"), die Eingabe Moodle Australia~3 liefert die Ergebnisse, die "Moodle HQ in Perth, Australia" enthalten (der gesuchte Ausdruck ist in 3 Worten des Suchergebnissen enthalten)
  • Nutzen Sie das Zeichen ^, um Suchbegriffe zu verstärken. Z.B. liefert "Perth Australia"^5 "Australia" Suichergebnisse, bei denen "Perth Australia" eine stärkere Relevanz hat.

Wie wird die Globale Suche eingerichtet?

Hinweis: Die Globale Suche benötigt eine Suchmaschine. Weiter unten finden Sie eine Anleitung, wie Sie die Suchmaschine Solr und die zugehörige PHP-Erweiterung auf Ihrem Moodle-Server installieren. Wenn Sie eine eigene Suchmaschine programmieren wollen, finden Sie detaillierte Informationen in der Entwickler-Dokumentation Developer docs on Search engine plugins (englisch). Wir empfehlen, erst die Suchmaschine einzurichten und die Moodle-Inhalte zu indizieren, bevor Sie die Globale Suche aktivieren.

Solr einrichten

Allgemeines

  • Auf der Seite Einstellungen > Website-Administration > Plugins > Suchen > Globale Suche verwalten wählen Sie Solr im Abschnitt Suchmaschine aus. Markieren Sie außerdem im Abschnitt Verfügbare Bereiche zur die Bereiche in Moodle, die durchsucht werden sollen.
  • Auf der Seite Einstellungen > Website-Administration > Plugins > Suchen > Solr konfigurieren Sie die Suchmaschine: Setzen Sie Hostname auf localhost, Port auf 8983 und Indexname auf moodle' (Name des Indexes in Solr)
  • Wenn Sie Solr zusammen mit SSL-Verschlüsselung verwenden, müssen Sie Moodle entsprechend konfigurieren (das ist wichtig, wenn Solr nicht auf dem Server installiert ist, auf dem der Webserver von Moodle läuft).
  • Sie benötigen ein Key-File und ein CACert-File, beide im .pem Format auf Ihrem Moodle-Server und lesbar für den PHP-Prozess.
  • Gehen Sie auf die Seite Einstellungen > Website-Administration > Plugins > Suchen > Solr.
  • Setzen Sie die Einstellung Sicherer Modus auf Ja.
  • Tragen Sie im Textfeld SSL Zertifikat den Pfad zum CACert-File ein.
  • Tragen Sie im Textfeld SSL Key den Pfad zum Key-File ein.
  • Tragen Sie im Textfeld SSL Key Password das Passwort für den SSL-Schlüssel ein.
  • Anschließend müssen Sie den Solr-Index mit den Daten Ihrer Moodle-Site füllen. Gehen Sie dazu auf die Seite Einstellungen > Website-Administration > Berichte > Info zur globalen Suche oder rufen Sie das CLI-Skript moodle/search/cli/indexer.php. Für große Moodle-Systeme empfehlen wir die Nutzung des CLI-Skripts:
   # sudo -u www-run php search/cli/indexer.php --force
  • Aktivieren Sie abschließend die Globale Suche auf der Seite Einstellungen > Website-Administration > Zusatzoptionen.

Indizierung

Solr kann die inhalte von Dateien indizieren, die z.B. als Arbeitsmaterialien oder Forumsanhänge in Moodle bereitgestellt werden. Dabei wird die Tika Suchmaschine verwendet, die zusammen mit Solr ausgeliefert wird. Wenn Sie diese Funktionalität verwenden wollen:

  • Gehen Sie auf die Seite Einstellungen > Website-Administration > Plugins > Suchen> Solr und markieren Sie die Checkbox Dateiindizierung aktivieren.
  • Setzen Sie den Wert für Maximale Dateigröße zur Indizierung (kB) (der Standardwert ist 2097152 kB bzw. 2GB)
  • Dateien, die größer sind, werden nicht von Solr indiziert, der Dateiname wird jedoch indiziert.

Solr installieren

Sie benötigen die PHP-Erweiterung für Solr. Die aktuelle Version können Sie auf der Seite http://pecl.php.net/package/solr herunterladen. Sie benötigen mindestens die Version PECL Solr 2.1 für PHP 5 bzw. PECL Solr 2.4 für PHP 7.

Im folgenden sind die Installationsschritte für den Apache Webserver beschrieben.

Linux (Debian/Ubuntu)

Unter PHP5.x:

   sudo apt-get install libpcre3-dev libxml2-dev libcurl4-openssl-dev
   sudo apt-get install php5-dev
   sudo apt-get install php-pear
   sudo pecl install solr
   sudo sh -c "echo 'extension=solr.so' > /etc/php5/apache2/conf.d/solr.ini"
   sudo sh -c "echo 'extension=solr.so' > /etc/php5/cli/conf.d/solr.ini"
   sudo service apache2 restart

Unter PHP 7:

   sudo apt-get install libpcre3-dev libxml2-dev libcurl4-openssl-dev
   sudo apt-get install php7.0-dev
   sudo apt-get install php-pear
   sudo pecl install solr
   sudo sh -c "echo 'extension=solr.so' > /etc/php/7.0/apache2/conf.d/solr.ini"
   sudo sh -c "echo 'extension=solr.so' > /etc/php/7.0/cli/conf.d/solr.ini"
   sudo service apache2 restart

Linux (Redhat/Centos7)

Bei Verwendung von php5:

 yum install php-pecl-solr2
 service httpd restart

Bei Verwendung von php7:

 yum install libxml2-devel pcre-devel libcurl-devel php70w-devel php70w-pear
 pecl install solr
 echo "extension=solr.so" > /etc/php.d/solr.ini
 service httpd restart

OSX mit macports

   sudo port install apache-solr4
   sudo port install php54-solr

OSX mit homebrew

   brew install homebrew/php/php56-solr

Windows

Installieren Sie das pecl Paket (noch nicht getestet).

Der Solr-Server

Moodle 3.1 unterstützt den Solr-Server ab Version 4.0. Das Solr Schema Setup Skript, das mit Moodle ausgeliefert wird, funktioniert jedoch nur für Solr 5. Die empfohlene Version ist Solr 5 (bzw. Solr 6 sobald diese verfügbar ist).

Für große Moodle-Sites müssen Sie den Wert von maxBooleanClauses erhöhen. Wir arbeiten jedoch an einer alternativen Server-Abfrage, siehe MDL-54992.

Der folgende Code lädt Solr 5.4.1 im aktuellen Verzeichnis herunter (ersetzen Sie diese Zahl durch die aktuelle Solr-Versionsnummer), startet den Solr-Server und legt einen Index moodle an, in dem die Moodle-Daten abgelegt werden.

   #!/bin/bash
   set -e
   SOLRVERSION=5.4.1
   SOLRNAME=solr-$SOLRVERSION
   SOLRTAR=$SOLRNAME'.tgz'
   INDEXNAME=moodle
   if [ -d $SOLRNAME ]; then
       echo "Error: Directory $SOLRNAME already exists, remove it before starting the setup again."
       exit 1
   fi
   if [ ! -f $SOLRTAR ]; then
       wget http://www-us.apache.org/dist/lucene/solr/$SOLRVERSION/$SOLRTAR
   fi
   tar -xvzf $SOLRTAR
   cd $SOLRNAME
   bin/solr start
   bin/solr create -c $INDEXNAME
   # After setting it up and creating the index use:
   # - "/yourdirectory/solrdir/bin/solr start" from CLI to start the server
   # - "/yourdirectory/solrdir/bin/solr stop" from CLI to stop the server.
Solr 5/6 Schema Setup

Moodle verwendet das Schema Interface von Solr, um die nötigen Felder zu installieren. Auf der Seite Einstellungen > Website-Administration > Plugins > Suchen > Globale Suche verwalten finden Sie eine Anleitung, was zu tun ist.

Für sehr große und viel frequntierte Moodle-Sites empfehlen wir, das Feld _text_ und die zugehörige Anweisung im Solr Schema manuell zu löschen. Dieses Feld wird von Moodle nicht verwendet, es macht jedoch die Indizierung erheblichlangsamer .

Solr 4 Schema Setup

Sie können das Schema Setup Skript nicht zusammen mit dem Solr-Server 4 verwenden. Die folgenden Feld-Beschreibungen sind der Dokumentation moodle/search/classes/document.php entnommen:

Feldname Feldtyp Gespeichert Indiziert Abfragefeld
id org.apache.solr.schema.StrField true false false
itemid org.apache.solr.schema.TrieIntField true true false
title org.apache.solr.schema.TextField true true true
content org.apache.solr.schema.TextField true true true
contextid org.apache.solr.schema.TrieIntField true true false
areaid org.apache.solr.schema.StrField true true false
type org.apache.solr.schema.TrieIntField true true false
courseid org.apache.solr.schema.TrieIntField true true false
owneruserid org.apache.solr.schema.TrieIntField true true false
modified org.apache.solr.schema.TrieDateField true true false
userid org.apache.solr.schema.TrieIntField true true false
description1 org.apache.solr.schema.TextField true true true
description2 org.apache.solr.schema.TextField true true true
solr_filegroupingid org.apache.solr.schema.StrField true true false
solr_fileid org.apache.solr.schema.StrField true true false
solr_filecontenthash org.apache.solr.schema.StrField true true false
solr_fileindexstatus org.apache.solr.schema.TrieIntField true true false
solr_filecontent org.apache.solr.schema.TextField false true true
Anmerkungen zum Speicher und zur Dateiindizierung

Für große Moodle-Systeme und insbesondere bei Verwendung der Dateiindizierung ist es eine gute Idee, dem Solr-Server viel Speicher zu geben, etwa 10-2 0GB. Um dem Solr-Server mehr als den standardmäßig vorgesehenen 512 MB RAm zu geben, verwenden Sie beim Starten die -m Option:

solr start -m 12g

Wie man den Speicher erhöht, wenn Solr automatisch gestartet wird, lesen Sie in der Dokumentation Ihrer Solr-Version nach.

Fehler: Zu viele Boolsche Ausdrücke

Wenn in Ihrer Moodle-Site Nutzer/innen ohne Admin-Rechte Zugriff auf zu viele Aktivitäten (mehr als 1000) haben, dann kann folgender Fehler auftreten:

   The query you provided could not be parsed by the search engine: org.apache.solr.search.SyntaxError: Cannot parse 
   ...
   too many boolean clauses

In diesem Fall müssen Sie den Wert von maxBooleanClauses in corename/conf/solrconfig.xml erhöhen.

In der Konfigurationsdatei finden Sie folgenden wichtigen Hinweis:

   ** WARNING **
   
   This option actually modifies a global Lucene property that
   will affect all SolrCores.  If multiple solrconfig.xml files
   disagree on this property, the value at any given moment will
   be based on the last SolrCore to be initialized.

Das bedeutet, dass Sie den Wert in allen Cores im Solr-Server aktualisieren müssen.

Siehe auch