Globale Suche: Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(40 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Blöcke}}
{{Weitere Funktionen}}


Der Block [[Globale Suche]] bietet Zugang zur internen globalen Suchmaschine von Moodle. Dieser Block stellt dem Nutzer ein Suchfeld bereit, um alle durchsuchbaren Einträge der Moodle-Seite zu durchsuchen.
==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 diese Suchfunktionalität in den [[Zusatzoptionen]] systemweit aktivieren. Danach muss über den Menüpunkt ''Website-Administration'' (oder im Block ''[[Einstellungen-Block|Einstellungen]] > Website-Administration'')'' > Plugins > Suchen > Globale Suche verwalten'' eine  Suchmaschine ausgewählt werden. Wenn die globale Suche aktiviert ist, 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.


Durchsuchbare Einträge sind sozusagen "virtuelle Dokumente", die aus Kursdaten und der Datenbank erstellt wurden, und somit indizierte Inhalte der Aktivitäten und Blöcke darstellen.
==Wonach kann ich suchen?==
Sie 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).


Die Verwendung des Blocks erfordert vorherige Konfiguration seitens der Moodle-Administration.
Darüber hinaus können Sie nach Inhalten von Textblöcken suchen sowie nach Inhalten in Kursen, in denen Sie nicht eingeschrieben sind, auf die Sie jedoch Zugriff haben. Voraussetzung dafür ist, dass die Moodle-Administration über den Menüpunkt ''Website-Administration'' (oder im Block ''[[Einstellungen-Block|Einstellungen]] > Website-Administration'')'' > Plugins > Suchen > Globale Suche verwalten'' im Auswahlmenü ''Durchsuchbare Kurse'' die Option ''Suche in allen Kursen, auf die der Benutzer zugreifen kann'' gewählt hat.


==Globale Suche konfigurieren==
==Wie funktioniert die Globale Suche?==
*Melden Sie sich als Administrator/in an.
*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 Suchfeld im [[Globale-Suche-Block]], falls dieser auf der Kursseite verfügbar ist.
*Klicken Sie im Block ''[[Einstellungen-Block|Einstellungen]] > Website-Administration > Entwicklung > Experimentell > Experimentelle Einstellungen'' und setzen Sie ein Häkchen bei ''Globale Suche erlauben''. Speichern Sie diese Änderung.
*Auf der nächsten Seite klicken Sie auf den Buttn ''Suchen!'' oder Sie klappen den Filter für die erweiterte Suche auf.
*Klicken Sie im Block ''[[Einstellungen-Block|Einstellungen]] > Website-Administration > Plugins > Blöcke > Übersicht''.
*Es werden Suchergebnisse aus allen Bereichen von Moodle angezeigt, auf die Sie Zugriff haben.
*Aktivieren Sie den Block [[Globale Suche]]: Das Auge-Symbol in der Spalete ''Verbergen/Anzeigen'' muss geöffnet sein [[Image:hide.gif]].
*Klicken Sie im Block ''[[Einstellungen-Block|Einstellungen]] > Website-Administration > Plugins > Blöcke > Globale Suche'' und treffen Sie hier Ihre gewünschten Einstellungen. Beachten Sie, dass Sie für die Indizierung von Dateien zusätzliche Konverter benötigen, die Sie im [http://cvs.moodle.org/contrib/patches/global_search_libraries/ CVS von moodle.org] herunterladen können. Wenn Sie die Datei-Indizierung erlauben, müssen die Pfade zu den Konvertern evtl. angepasst werden. '''Auf Linux-Systemen müssen die Konverter ausführbar sein! (Dateirechte: x - execute)'''. Wenn alle Einstellungen getroffen sind, speichern Sie die Änderungen.
* Fügen Sie den Block auf einer Moodle-Seite hinzu und führen Sie eine leere Suche durch (d.h. Sie lassen das Eingabefeld leer und klicken auf ''Los!'').
* Klicken Sie auf ''Statistiken''. Als Administrator/in finden Sie hier einen Link, um die erste Indizierung durchzuführen. Danach übernimmt der [[Cron-Job]] das regelmäßige Aktualisieren, Löschen und Anlegen der Indizes.
*Starten Sie eine "echte" Suche, um die globale Suche zu testen.


{{Credits}} [https://docs.moodle.org/19/de/Globale_Suche_%28Block%29]
===Solr-Funktionalitäten===
'''Diese Funktionalitäten sind nur verfügbar, wenn Sie Solr als Suchmaschine verwenden.'''
 
====Suchfunktionalitä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.
 
====Indizierung von Dateiinhalten====
Solr kann die Inhalte von Dateien indizieren, z.B. Arbeitsmaterialien vom Typ ''Datei'' oder Anhänge von Forumsbeiträgen.
 
====Extra Filter====
Neue Felder ermöglichen das Filtern nach Nutzer-ID oder Suche nach Gruppen.
 
==Wie wird die Globale Suche eingerichtet?==
 
Die Globale Suche benötigt eine Suchmaschine. Wir empfehlen, erst die Suchmaschine einzurichten und die Moodle-Inhalte zu indizieren, bevor Sie die Globale Suche aktivieren.
 
Das Standardpaket von Moodle enthält zwei Suchmaschinen: ''Einfache Suche'' und ''Solr''. 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).
 
===Einfache Suche einrichten===
Die Einfache Suche stellt eine globale Such-Funktionalität bereit, ohne dass man eine externe Suchmaschine installieren muss.
 
{{MediaPlayer | url = https://youtu.be/4JJhOd2XAiY | desc = Einfache Suche}}
 
===Solr einrichten===
*Die empfohlene Version ist Solr 5.
*Moodle unterstützt den Solr Server ab Version 4.0. Sie können auch nur das Solr Schema Setup Skript von Solr 5 verwenden, das mit Moodle bereitgestellt wird. Die neueste verfügbare Solr 5 Version ist die empfohlene Version; dasselbe wird für Solr 6 gelten, sobald diese Version herauskommt.
*Solr 7 wird derzeit nicht unterstützt, da der Feldtyp ''int'' entfernt wurde.
 
====Allgemeines Setup====
 
* Über den Menüpunkt ''Website-Administration'' (oder im Block ''[[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.
* Über den Menüpunkt ''Website-Administration'' (oder im Block ''[[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 über den Menüpunkt ''Website-Administration'' (oder im Block ''[[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.
:*Tragen Sie im Textfeld ''SSL CA Certificates Name'' den Dateinamen des CA-Zertifikats ein.
:*Tragen Sie im Textfeld ''SSL CA Certificates Pfad'' den Namen des Verzeichnisses ein, in dem die CA-Zertifikate gespeichert sind.
* Anschließend müssen Sie den Solr-Index mit den Daten Ihrer Moodle-Site füllen. Gehen Sie dazu über den Menüpunkt ''Website-Administration'' (oder im Block ''[[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 über den Menüpunkt ''Website-Administration'' (oder im Block ''[[Einstellungen-Block|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 [https://tika.apache.org/ Tika] Suchmaschine verwendet, die zusammen mit Solr ausgeliefert wird.
Wenn Sie diese Funktionalität verwenden wollen:
* Gehen Sie über den Menüpunkt ''Website-Administration'' (oder im Block ''[[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.
 
====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.
 
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. Über den Menüpunkt ''Website-Administration'' (oder im Block ''[[Einstellungen-Block|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:
 
{| class="wikitable"
|-
! 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.
 
=====Solr Server unter Centos 7 installieren=====
Zuerst müssen Sie Java installieren:
yum install java-1.8.0-openjdk
Danach müssen Sie einen Nuzer für Solr anlegen:
adduser solr
Installieren Sie den Solr Server. Die aktuelle Version finden Sie unter http://lucene.apache.org/solr/mirrors-solr-latest-redir.html. Wählen Sie aus der Liste die aktuelle Datei ''solr-[version].tgz''.
 
cd /opt
wget http://www-eu.apache.org/dist/lucene/solr/6.6.0/solr-6.6.0.tgz
tar zxvf solr-6.6.0.tgz
cp solr-6.6.0/bin/install_solr_service.sh .
rm -rf solr-6.6.0
./install_solr_service.sh solr-6.6.0.tgz
chkconfig solr on
Erzeugen Sie den Index:
su - solr -c "/opt/solr/bin/solr create_core -c moodle"
Gehen Sie auf Ihre Moodle-Site und setzen Sie den Indexnamen (moodle).
 
==Siehe auch==
 
* [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]]

Aktuelle Version vom 10. August 2021, 19:01 Uhr

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 diese Suchfunktionalität in den Zusatzoptionen systemweit aktivieren. Danach muss über den Menüpunkt Website-Administration (oder im Block Einstellungen > Website-Administration) > Plugins > Suchen > Globale Suche verwalten eine Suchmaschine ausgewählt werden. Wenn die globale Suche aktiviert ist, 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?

Sie 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).

Darüber hinaus können Sie nach Inhalten von Textblöcken suchen sowie nach Inhalten in Kursen, in denen Sie nicht eingeschrieben sind, auf die Sie jedoch Zugriff haben. Voraussetzung dafür ist, dass die Moodle-Administration über den Menüpunkt Website-Administration (oder im Block Einstellungen > Website-Administration) > Plugins > Suchen > Globale Suche verwalten im Auswahlmenü Durchsuchbare Kurse die Option Suche in allen Kursen, auf die der Benutzer zugreifen kann gewählt hat.

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 Suchfeld 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

Diese Funktionalitäten sind nur verfügbar, wenn Sie Solr als Suchmaschine verwenden.

Suchfunktionalitä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.

Indizierung von Dateiinhalten

Solr kann die Inhalte von Dateien indizieren, z.B. Arbeitsmaterialien vom Typ Datei oder Anhänge von Forumsbeiträgen.

Extra Filter

Neue Felder ermöglichen das Filtern nach Nutzer-ID oder Suche nach Gruppen.

Wie wird die Globale Suche eingerichtet?

Die Globale Suche benötigt eine Suchmaschine. Wir empfehlen, erst die Suchmaschine einzurichten und die Moodle-Inhalte zu indizieren, bevor Sie die Globale Suche aktivieren.

Das Standardpaket von Moodle enthält zwei Suchmaschinen: Einfache Suche und Solr. Wenn Sie eine eigene Suchmaschine programmieren wollen, finden Sie detaillierte Informationen in der Entwickler-Dokumentation Developer docs on Search engine plugins (englisch).

Einfache Suche einrichten

Die Einfache Suche stellt eine globale Such-Funktionalität bereit, ohne dass man eine externe Suchmaschine installieren muss.

Einfache Suche

Solr einrichten

  • Die empfohlene Version ist Solr 5.
  • Moodle unterstützt den Solr Server ab Version 4.0. Sie können auch nur das Solr Schema Setup Skript von Solr 5 verwenden, das mit Moodle bereitgestellt wird. Die neueste verfügbare Solr 5 Version ist die empfohlene Version; dasselbe wird für Solr 6 gelten, sobald diese Version herauskommt.
  • Solr 7 wird derzeit nicht unterstützt, da der Feldtyp int entfernt wurde.

Allgemeines Setup

  • Über den Menüpunkt Website-Administration (oder im 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.
  • Über den Menüpunkt Website-Administration (oder im 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 über den Menüpunkt Website-Administration (oder im 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.
  • Tragen Sie im Textfeld SSL CA Certificates Name den Dateinamen des CA-Zertifikats ein.
  • Tragen Sie im Textfeld SSL CA Certificates Pfad den Namen des Verzeichnisses ein, in dem die CA-Zertifikate gespeichert sind.
  • Anschließend müssen Sie den Solr-Index mit den Daten Ihrer Moodle-Site füllen. Gehen Sie dazu über den Menüpunkt Website-Administration (oder im 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 über den Menüpunkt Website-Administration (oder im Block 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 über den Menüpunkt Website-Administration (oder im 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.

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. Über den Menüpunkt Website-Administration (oder im Block 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.

Solr Server unter Centos 7 installieren

Zuerst müssen Sie Java installieren:

yum install java-1.8.0-openjdk

Danach müssen Sie einen Nuzer für Solr anlegen:

adduser solr

Installieren Sie den Solr Server. Die aktuelle Version finden Sie unter http://lucene.apache.org/solr/mirrors-solr-latest-redir.html. Wählen Sie aus der Liste die aktuelle Datei solr-[version].tgz.

cd /opt
wget http://www-eu.apache.org/dist/lucene/solr/6.6.0/solr-6.6.0.tgz
tar zxvf solr-6.6.0.tgz
cp solr-6.6.0/bin/install_solr_service.sh .
rm -rf solr-6.6.0
./install_solr_service.sh solr-6.6.0.tgz
chkconfig solr on

Erzeugen Sie den Index:

su - solr -c "/opt/solr/bin/solr create_core -c moodle"

Gehen Sie auf Ihre Moodle-Site und setzen Sie den Indexnamen (moodle).

Siehe auch