Extension:CirrusSearch/de
CirrusSearch Freigabestatus: stabil |
|
---|---|
Einbindung | Suche, API , Hook |
Beschreibung | Implementiert eine Suchfunktion in MediaWiki, die Elasticsearch benutzt. |
Autor(en) | Nik Everett, Chad Horohoe, Erik Bernhardson |
Letzte Version | Kontinuierliche Aktualisierungen |
Kompatibilitätspolitik | Snapshots werden zusammen mit MediaWiki veröffentlicht. Der Master ist nicht abwärtskompatibel. |
MediaWiki | >= 1.43 |
Composer | mediawiki/cirrussearch |
Lizenz | GNU General Public License 2.0 oder neuer |
Herunterladen | README |
|
|
|
|
|
|
Quarterly downloads | 268 (Ranked 19th) |
Public wikis using | 1,226 (Ranked 212nd) |
Übersetze die CirrusSearch-Erweiterung, wenn sie auf translatewiki.net verfügbar ist | |
Vagrant-Rolle | cirrussearch |
Probleme | Offene Aufgaben · Einen Fehler melden |
Die CirrusSearch-Erweiterung implementiert eine Suchfunktion in MediaWiki, die Elasticsearch benutzt.
CirrusSearch has been slated for migration to use OpenSearch as its backend, but this decision is being reviewed based on a late August 2024 blog post from the upstream provider of the current search backend concerning its licensing. Please see Wikimedia Search Platform/Decision Records/Search backend replacement technology for more information. |
Elasticsearch is a standalone third-party software you must install as a requirement for this extension. It is a database system that provides search and indexing functionality, where the current text of your wiki pages gets indexed for faster and improved search results. The communication between MediaWiki and ElasticSearch is done through web services.
See also the help page on using this extension.
Ziele
- Keine native Abhängigkeiten, die die Installation erschweren würden
** Die einzigen Abhängigkeiten sind reine PHP-Mediawiki-Erweiterungen und Elasticsearch selbst
- Einen nahezu in Echtzeit aktualisierten Suchindex für Wikiseiten bereitstellen, der durch andere MediaWiki-Erweiterungen erweiterbar ist.
- Alle Abfrageoptionen bereitstellen, die MWSearch Usern lieferte und mehr
Abhängigkeiten
- PHP und cURL
- Zusätzlich zu den Mediawiki-Standard-Anforderungen an PHP, muss PHP für CirrusSearch mit cURL-Support kompiliert worden sein.
- Elasticsearch
Every version of ElasticSearch changes how web services work and causes compatibility problems. You must install the version of Elastic Search compatible with the version of MediaWiki you are currently using:
Elasticsearch versions before 6.8 are incompatible with PHP 8+.
Zu beachten ist, dass zusätzlich eine Java-Installation, wie OpenJDK, benötigt wird. It's best to use the official Elasticsearch Docker image or a self-hosted version. A managed product like Amazon OpenSearch (formerly Amazon Elasticsearch) can work but may require additional configuration depending on its specifics. For example, Amazon OpenSearch only listens for Elasticsearch API requests over HTTPS on port 443 (i.e., it does not expose the default Elasticsearch port 9200), so a TLS-enabled proxy (e.g., Nginx) can enable CirrusSearch to communicate with an Amazon OpenSearch cluster.
- Elastica ist eine PHP-Bibliothek um mit Elasticsearch zu reden. Elastica kann nach der Anleitung weiter unten installiert werden.
- Andere
- Aufgrund der tatsächlichen Handhabung der Aufträge durch die CirrusSearch-Erweiterung ist es ratsam, Aufträge in redis aufzusetzen, um Nachrichten wie Notice: unserialize(): Error at offset 64870 of 65535 bytes in JobQueueDB.php und Unsupported operand types zu verhindern. Siehe task T157759.
Installation
Obwohl unten beschrieben wird, dass man Composer nur ausführen soll soll, wenn man von Git installiert, kann es nötig sein, Composer trotzdem auszuführen, um alle PHP-Abhängigkeiten zu installieren.
- Die Erweiterung herunterladen und die Datei(en) in ein Verzeichnis namens
Elastica
im Ordnerextensions/
ablegen.
Entwickler und Code-Beitragende sollten stattdessen die Erweiterung von Git installieren, mit:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Elastica - Wird von git aus installiert, ist Composer auszuführen, um PHP-Abhängigkeiten zu installieren, indem
composer install --no-dev
im Erweiterungsverzeichnis ausgeführt wird. (Siehe task T173141 für mögliche Komplikationen.) - Folgenden Code am Ende deiner LocalSettings.php -Datei einfügen:
wfLoadExtension( 'Elastica' );
- Erledigt – Navigiere zu Special:Version in deinem Wiki, um zu überprüfen, ob die Erweiterung erfolgreich installiert wurde.
CirrusSearch
- Die Erweiterung herunterladen und die Datei(en) in ein Verzeichnis namens
CirrusSearch
im Ordnerextensions/
ablegen.
Entwickler und Code-Beitragende sollten stattdessen die Erweiterung von Git installieren, mit:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CirrusSearch - Wird von git aus installiert, ist Composer auszuführen, um PHP-Abhängigkeiten zu installieren, indem
composer install --no-dev
im Erweiterungsverzeichnis ausgeführt wird. (Siehe task T173141 für mögliche Komplikationen.) - Folgenden Code am Ende deiner LocalSettings.php -Datei einfügen:
wfLoadExtension( 'CirrusSearch' );
- Now follow the setup instructions in the CirrusSearch README delivered with your extension i.e.
$IP/extensions/CirrusSearch/README
. Note that all info in it might not apply to your version of the extension, especially the version of Elasticsearch supported. - Konfiguriere nach Bedarf.
- Erledigt – Navigiere zu Special:Version in deinem Wiki, um zu überprüfen, ob die Erweiterung erfolgreich installiert wurde.
Enable regex queries
This is an optional step. You will need to install the search-extra plugin for this. Do so by following these steps:
- execute the following command:
/usr/share/elasticsearch/bin/elasticsearch-plugin/elasticsearch-plugin install org.wikimedia.search:extra:7.10.2-wmf12
- add the following line to your
LocalSettings.php
file:$wgCirrusSearchWikimediaExtraPlugin[ 'regex' ] = [ 'build', 'use', 'max_inspect' => 10000 ];
- restart Elasticsearch with the following command:
systemctl restart elasticsearch
- recreate the search index by executing the following commands:
php path/to/extensions/CirrusSearch/maintenance/UpdateSearchIndexConfig.php --startOver
php path/to/extensions/CirrusSearch/maintenance/ForceSearchIndex.php
Upgrade
Bitte folge die Upgrade-Anweisung in der CirrusSearch-UPGRADE-Datei.
Konfiguration
The configuration parameters of CirrusSearch are documented at the "settings.txt" file. See also documentation on CirrusSearch configuration profiles.
$wgCirrusSearchIndexBaseName
configuration parameter, which one needs to set, e.g., $wgCirrusSearchIndexBaseName = 'mywikidatabasename';
.Hooks
CirrusSearch extension defines a number of hooks that other extensions can make use of to extend the core schema and modify documents. The following hooks are available:
- CirrusSearchAnalysisConfig - allows to hook into the configuration for analysis
- CirrusSearchMappingConfig - allows configuration of the mapping of fields
- CirrusSearchBuildDocumentParse - allows extensions to modify ElasticSearch document produced from a page
- CirrusSearchBuildDocumentLinks - allows extensions to process incoming and outgoing links for the document
- CirrusSearchBuildDocumentFinishBatch - called when a batch of pages has been indexed
- CirrusSearchAddQueryFeatures - allows extensions to add query parser features
- CirrusSearchScoreBuilder - allows extensions to define rescore builder functions
- CirrusSearchProfileService - allows extension to declare various search components and configuration
API
CirrusSearch features can be used in API queries.
Searching happens via the normal search API, action=query&list=search
; you can use CirrusSearch-specific features, such as the morelike:
special prefix to find pages related to Marie Curie and radium:
api.php?action=query&list=search&srsearch=morelike:Marie_Curie%7Cradium&srlimit=10&srprop=size&formatversion=2
Custom APIs and parameters are provided for querying CirrusSearch configuration and debug information:
action=cirrusdump
module: 2014?action=cirrusdumpcirrusDumpQuery
parameter to Special:Search or search API queries: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpQuerycirrusDumpResult
parameter to Special:Search or search API queries: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpResult- An additional parameter,
cirrusExplain
, can be passed withcirrusDumpResult
to have the Lucene explanation of the score included with the result dump: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpResult&cirrusExplain It can also be used to get the explanation in a human-readable format, by giving it one of the valuesverbose
,pretty
orhot
, such as: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpResult&cirrusExplain=pretty cirrus-config-dump
,cirrus-settings-dump
,cirrus-mapping-dump
,cirrus-profiles-dump
modules to obtain dump from the CirrusSearch setup: api.php?action=cirrus-config-dump&formatversion=2
Siehe auch
- Allgemeine Links
- Usage help page - CirrusSearch usage documentation (needed after the install)
- Projektseite
- Info about Wikimedia Cirrus/Elastic setup
- Configuration help page - sets of tunable parameters that influence various aspects of the indexing
- Extension:WikiSearch - provides faceted search API for Semantic MediaWiki using ElasticSearch.
- Extension:AdvancedSearch - Enhances Special:Search by providing advanced parameters
- Debugging
Local development
Elastic Search service can be run with the Vagrant role (cirrussearch
) and MediaWiki Vagrant.
For Docker, you can use a command like docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.8.2
.
Then follow the installation and configuration directions.
If your web host is in a container, you'll want to make sure the above container is on the same network, and in the LocalSettings.php
file, you will want to reference the elasticsearch
as the hostname.
This will not have the WMF plugins but can be sufficient for basic testing.
Diese Erweiterung wird in einem oder mehreren Wikis von Wikimedia verwendet. Das bedeutet mit hoher Wahrscheinlichkeit, dass die Erweiterung stabil ist und gut genug funktioniert, um auf solch häufig besuchten Webseiten benutzt zu werden. Suche nach dem Erweiterungs-Namen in den Wikimedia CommonSettings.php und den InitialiseSettings.php-Konfigurations-Dateien, um nachzusehen, wo es installiert ist. Eine vollständige Liste der installierten Erweiterungen in einem bestimmten Wiki wird auf Special:Version im Wiki generiert und angezeigt. |
Diese Erweiterung ist in den folgenden Softwarepaketen enthalten und/oder wird von den folgenden Wiki-Farmen, bzw. Wiki-Hostern verwendet: Dies ist keine maßgebliche Liste. Softwarepakete und/oder Wiki-Farmen, bzw. Wiki-Hoster nutzen diese Erweiterung ggf., obwohl sie nicht in dieser Liste enthalten sind. Prüfe daher stets die Nutzung im verwendeten Softwarepaket und/oder bei der Wiki-Farm, bzw. dem Wiki-Hoster. |
- Stable extensions/de
- Search extensions/de
- API extensions/de
- Hook extensions/de
- Extensions supporting Composer/de
- GPL licensed extensions/de
- Extensions in Wikimedia version control/de
- APIAfterExecute extensions/de
- APIQuerySiteInfoGeneralInfo extensions/de
- APIQuerySiteInfoStatisticsInfo extensions/de
- ApiBeforeMain extensions/de
- ArticleRevisionVisibilitySet extensions/de
- BeforeInitialize extensions/de
- CirrusSearchAddQueryFeatures extensions/de
- CirrusSearchAnalysisConfig extensions/de
- CirrusSearchSimilarityConfig extensions/de
- GetPreferences extensions/de
- LinksUpdateComplete extensions/de
- PageDelete extensions/de
- PageDeleteComplete extensions/de
- PageMoveComplete extensions/de
- PageUndeleteComplete extensions/de
- PrefixSearchExtractNamespace extensions/de
- ResourceLoaderGetConfigVars extensions/de
- SearchGetNearMatch extensions/de
- SearchIndexFields extensions/de
- ShowSearchHitTitle extensions/de
- SoftwareInfo extensions/de
- SpecialSearchResults extensions/de
- SpecialSearchResultsAppend extensions/de
- SpecialStatsAddExtra extensions/de
- TitleMove extensions/de
- UploadComplete extensions/de
- UserGetDefaultOptions extensions/de
- All extensions/de
- Extensions requiring Composer with git/de
- Extensions used on Wikimedia/de
- Extensions included in Canasta/de
- Extensions included in Miraheze/de
- Extensions included in MyWikis/de
- Extensions included in semantic::core/de
- Extensions included in wiki.gg/de
- Extensions included in WikiForge/de
- Discovery/de
- Search/de