Extension:CirrusSearch
Stav rozšíření: stabilní |
|
|---|---|
| Implementace | Hledání, API, Háček |
| Popis | Implementuje vyhledávání MediaWiki pomocí Elasticsearch |
| Autoři | Nik Everett, Chad Horohoe, Erik Bernhardson |
| Nejnovější verze | průběžné aktualizace |
| Zásady kompatibility | Vydání snímků současně s MediaWiki. Hlavní vývojová větev není zpětně kompatibilní. |
| Composer | mediawiki/cirrussearch |
| Licence | GNU General Public License 2.0 nebo novější |
| Stáhnout | README |
|
|
|
|
|
|
| Přeložte rozšíření CirrusSearch, používá-li lokalizaci z translatewiki.net | |
| Vagrant role | cirrussearch |
| Problémy | Otevřené úkoly · Nahlásit chybu |
Rozšíření CirrusSearch implementuje vyhledávání na MediaWiki pomocí Elasticsearch.
CirrusSearch bude migrován tak, aby jako backend používal OpenSearch. Více informací naleznete v části Wikimedia Search Platform/Decision Records/Search backend replacement technology. |
Elasticsearch je samostatný software třetí strany, který je nutné nainstalovat jako požadavek pro toto rozšíření. Jedná se o databázový systém, který poskytuje funkce vyhledávání a indexování, kde se aktuální text vašich wiki stránek indexuje pro rychlejší a lepší výsledky vyhledávání. Komunikace mezi MediaWiki a Elasticsearch probíhá prostřednictvím webových služeb.
Viz také stránka s nápovědou k používání tohoto rozšíření.
Cíle
- Žádné nativní závislosti, které by ztěžovaly instalaci. Jediné závislosti jsou čisté PHP, rozšíření MediaWiki a samotný Elasticsearch.
- Poskytuje index vyhledávání wiki stránek téměř v reálném čase, který lze rozšířit o další rozšíření MediaWiki.
- Uveďte všechny možnosti dotazů, které MWSearch uživatelům nabídl, a další.
Závislosti
- PHP a cURL
Kromě standardních požadavků MediaWiki na PHP vyžaduje CirrusSearch, aby bylo PHP zkompilováno s podporou cURL.
- Elasticsearch nebo Opensearch
Musíte použít instalaci Elasticsearch nebo Opensearch.
Každá verze Elasticsearchu mění fungování webových služeb a způsobuje problémy s kompatibilitou. Musíte nainstalovat verzi Elasticsearch kompatibilní s verzí MediaWiki, kterou aktuálně používáte:
MediaWiki 1.39+ vyžaduje Elasticsearch 7.10.2 (6.8.23+ je možné s použitím compatibility layer). Informace o kompatibilitě se staršími verzemi MediaWiki naleznete v této revizi.
MediaWiki 1.44+ je kompatibilní s Opensearch 1.3.
Vezměte na vědomí, že je navíc potřeba instalace Javy, jako je OpenJDK. Nejlepší je použít oficiální obraz Dockeru od Elasticsearch nebo verzi hostovanou na vlastním serveru. Spravovaný produkt jako Amazon OpenSearch (dříve Amazon Elasticsearch) může fungovat, ale v závislosti na jeho specifikách může vyžadovat další konfiguraci. Například Amazon OpenSearch naslouchá pouze požadavkům Elasticsearch API přes HTTPS na portu 443 (tj. nezpřístupňuje výchozí port Elasticsearch 9200), takže proxy s povoleným TLS (např. Nginx) může CirrusSearch umožnit komunikaci s clusterem Amazon OpenSearch.
- Elastica je PHP knihovna, která umožňuje CirrusSearch komunikovat s Elasticasearch. Nainstalujte Elasticu podle pokynů níže.
- Jiné
- Vzhledem k tomu, že rozšíření CirrusSearch skutečně zpracovává úlohy, je vhodné nastavit úlohy v Redisu, aby se předešlo zprávám typu Notice: unserialize(): Error at offset 64870 of 65535 bytes in JobQueueDB.php a následným chybám typu Unsupported operand types. Podívejte se na stránku T157759.
Instalace
I když níže uvedené pokyny uvádějí, že při instalaci z Gitu máte spustit pouze Composer, může být nutné jej spustit i tak, aby se nainstalovaly všechny závislosti PHP.
- Stáhněte soubor/y a vložte je do adresáře pojmenovaného
Elasticave vaší složceextensions/.
Vývojáři a přispěvatelé kódu by si místo toho měli nainstalovat rozšíření from Git pomocí:cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Elastica
- Při instalaci z Gitu spusťte Composer pro instalaci závislostí PHP zadáním
composer install --no-devv adresáři rozšíření. (Vyskytnou-li se nějaké komplikace, podívejte se na T173141.) - Na konec vašeho souboru LocalSettings.php přidejte následující kód:
wfLoadExtension( 'Elastica' );
Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.
CirrusSearch
- Stáhněte soubor/y a vložte je do adresáře pojmenovaného
CirrusSearchve vaší složceextensions/.
Vývojáři a přispěvatelé kódu by si místo toho měli nainstalovat rozšíření from Git pomocí:cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CirrusSearch
- Při instalaci z Gitu spusťte Composer pro instalaci závislostí PHP zadáním
composer install --no-devv adresáři rozšíření. (Vyskytnou-li se nějaké komplikace, podívejte se na T173141.) - Na konec vašeho souboru LocalSettings.php přidejte následující kód:
wfLoadExtension( 'CirrusSearch' );
- Nyní postupujte podle pokynů k instalaci v souboru CirrusSearch README dodaném s vaším rozšířením, tj.
$IP/extensions/CirrusSearch/README. Upozorňujeme, že všechny informace v něm se nemusí vztahovat na vaši verzi rozšíření, zejména na verzi, kterou Elasticsearch podporuje. - Nakonfigurujte dle potřeby.
Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.
Povolení regulárních výrazů
This is an optional step. You will need to install the search-extra plugin for this. Postupujte podle těchto kroků:
- Spusťte následující příkaz:
/usr/share/elasticsearch/bin/elasticsearch-plugin/elasticsearch-plugin install org.wikimedia.search:extra:7.10.2-wmf12
- Přidejte do souboru
LocalSettings.phpnásledující řádek:$wgCirrusSearchWikimediaExtraPlugin[ 'regex' ] = [ 'build', 'use', 'max_inspect' => 10000 ];
- Restartujte Elasticsearch pomocí následujícího příkazu:
systemctl restart elasticsearch
- Znovu vytvořte index vyhledávání spuštěním následujících příkazů:
php path/to/extensions/CirrusSearch/maintenance/UpdateSearchIndexConfig.php --startOver
php path/to/extensions/CirrusSearch/maintenance/ForceSearchIndex.php
Aktualizace
Postupujte prosím podle pokynů pro aktualizaci v souboru CirrusSearch UPGRADE.
Konfigurace
Konfigurační parametry CirrusSearch jsou popsány v souboru "settings.txt". Viz také dokumentaci k konfiguračním profilům CirrusSearch.
$wgCirrusSearchIndexBaseName, který je třeba nastavit, např. $wgCirrusSearchIndexBaseName = 'mywikidatabasename';.
Háčky
Rozšíření CirrusSearch definuje řadu háčků, které mohou jiná rozšíření využít k rozšíření základního schématu a úpravě dokumentů. K dispozici jsou následující háčky:
- CirrusSearchAnalysisConfig - umožňuje připojení k konfiguraci pro analýzu
- CirrusSearchMappingConfig - umožňuje konfiguraci mapování polí
- CirrusSearchBuildDocumentParse - umožňuje rozšířením upravovat dokument Elasticsearch vytvořený ze stránky
- CirrusSearchBuildDocumentLinks - umožňuje rozšířením zpracovávat příchozí a odchozí odkazy pro dokument
- CirrusSearchBuildDocumentFinishBatch - voláno, když je indexována dávka stránek
- CirrusSearchAddQueryFeatures - umožňuje rozšířením přidávat funkce analyzátoru dotazů
- CirrusSearchScoreBuilder - umožňuje rozšířením definovat funkce pro tvorbu rescore
- CirrusSearchProfileService - umožňuje rozšíření deklarovat různé vyhledávací komponenty a konfigurace
API
Funkce CirrusSearch lze použít v dotazech API.
Vyhledávání probíhá prostřednictvím běžného vyhledávacího API, action=query&list=search; můžete použít specifické funkce CirrusSearch, jako je speciální prefix morelike:, k nalezení stránek souvisejících s Marie Curie a radiem:
api.php?action=query&list=search&srsearch=morelike:Marie_Curie%7Cradium&srlimit=10&srprop=size&formatversion=2
Pro dotazování na konfigurační a ladicí informace CirrusSearch jsou k dispozici vlastní API a parametry:
action=cirrusdumpmodul: 2014?action=cirrusdump- Parametr
cirrusDumpQuerypro Special:Search nebo dotazy vyhledávacího API: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpQuery - Parametr
cirrusDumpResultpro Special:Search nebo dotazy vyhledávacího API: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpResult - Další parametr
cirrusExplainlze předat s parametremcirrusDumpResult, aby se do výpisu výsledků zahrnulo i Luceneovo vysvětlení skóre: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpResult&cirrusExplain. Lze jej také použít k získání vysvětlení ve formátu čitelném pro člověka, a to zadáním jedné z hodnotverbose,prettynebohot, například: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpResult&cirrusExplain=pretty - Moduly
cirrus-config-dump,cirrus-settings-dump,cirrus-mapping-dump,cirrus-profiles-dumppro získání výpisu z nastavení CirrusSearch: api.php?action=cirrus-config-dump&formatversion=2
Související odkazy
- Obecné odkazy
- Stránka s nápovědou k používání – Dokumentace k použití CirrusSearch (nutná po instalaci)
- Stránka projektu
- Informace o nastavení Cirrus/Elastic od Wikimedie
- Stránka s nápovědou k nastavení – sady laditelných parametrů, které ovlivňují různé aspekty indexování
- Extension:WikiSearch – poskytuje API pro fazetové vyhledávání pro Semantic MediaWiki pomocí Elasticsearch.
- Extension:AdvancedSearch – vylepšuje Special:Search poskytnutím pokročilých parametrů
- Extension:SearchParserFunction – poskytuje funkci analyzátoru vyhledávání, která podporuje Cirrus Search.
- Ladění
Místní rozvoj
Službu Elasticsearch lze spustit s rolí Vagrant (cirrussearch) a pomocí služby MediaWiki Vagrant.
Pro Docker můžete použít příkaz jako docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.8.2.
Poté postupujte podle pokynů k instalaci a konfiguraci.
Pokud se váš webhosting nachází v kontejneru, ujistěte se, že výše uvedený kontejner je ve stejné síti, a v souboru LocalSettings.php uveďte jako název hostitele elasticsearch.
Toto nebude mít pluginy WMF, ale pro základní testování to může stačit.
| Toto rozšíření se používá na jednom nebo více projektech Wikimedia. Pravděpodobně to znamená, že rozšíření je stabilní a funguje dostatečně dobře, aby jej mohly používat weby s tak vysokou návštěvností. Vyhledejte tento název rozšíření v konfiguračních souborech CommonSettings.php a InitialiseSettings.php Wikimedie, abyste viděli, kde je nainstalováno. Úplný seznam rozšíření nainstalovaných na konkrétní wiki lze vidět na stránce wiki Special:Version. |
| Toto rozšíření je zahrnuto v následujících wiki farmách/hostitelích a/nebo balíčcích: Toto není autoritativní seznam. Některé wiki farmy/hostitelé a/nebo balíčky mohou toto rozšíření obsahovat, i když zde nejsou uvedeny. Pro potvrzení se vždy obraťte na své wiki farmy/hostitele nebo balíček. |
- Stable extensions/cs
- Search extensions/cs
- API extensions/cs
- Hook extensions/cs
- Extensions supporting Composer/cs
- GPL licensed extensions/cs
- Extensions in Wikimedia version control/cs
- APIAfterExecute extensions/cs
- APIQuerySiteInfoGeneralInfo extensions/cs
- APIQuerySiteInfoStatisticsInfo extensions/cs
- ApiBeforeMain extensions/cs
- ArticleRevisionVisibilitySet extensions/cs
- BeforeInitialize extensions/cs
- CirrusSearchAddQueryFeatures extensions/cs
- CirrusSearchAnalysisConfig extensions/cs
- CirrusSearchSimilarityConfig extensions/cs
- GetPreferences extensions/cs
- LinksUpdateComplete extensions/cs
- PageDelete extensions/cs
- PageDeleteComplete extensions/cs
- PageMoveComplete extensions/cs
- PageUndeleteComplete extensions/cs
- PrefixSearchExtractNamespace extensions/cs
- ResourceLoaderGetConfigVars extensions/cs
- SearchGetNearMatch extensions/cs
- SearchIndexFields extensions/cs
- ShowSearchHitTitle extensions/cs
- SoftwareInfo extensions/cs
- SpecialSearchResults extensions/cs
- SpecialSearchResultsAppend extensions/cs
- SpecialStatsAddExtra extensions/cs
- TitleMove extensions/cs
- UploadComplete extensions/cs
- UserGetDefaultOptions extensions/cs
- All extensions/cs
- Extensions requiring Composer with git/cs
- Extensions used on Wikimedia/cs
- Extensions included in Canasta/cs
- Extensions included in Miraheze/cs
- Extensions included in MyWikis/cs
- Extensions included in semantic::core/cs
- Extensions included in wiki.gg/cs
- Extensions included in WikiForge/cs
- Discovery/cs
- Search/cs
