Extensão:CirrusSearch
CirrusSearch Estado da versão: estável |
|
---|---|
Implementação | Sistema de pesquisa, API , Hook |
Descrição | Implementa um mecanismo de busca para o MediaWiki utilizando o Elasticsearch |
Autor(es) | Nik Everett, Chad Horohoe, Erik Bernhardson |
Última versão | atualizações contínuas |
Política de compatibilidade |
Snapshots releases along with MediaWiki. Master is not backward compatible. |
Composer | mediawiki/cirrussearch |
Licença | GNU GPL (Licença Pública Geral) 2.0 ou superior |
Download | README |
|
|
|
|
|
|
Quarterly downloads | 263 (Ranked 18th) |
Public wikis using | 1,226 (Ranked 212nd) |
Para traduzir a extensão CirrusSearch, verifique sua disponibilidade no translatewiki.net | |
Função no Vagrant | cirrussearch |
Problemas | Tarefas em aberto · Relatar um bug |
A extensão CirrusSearch implementa um mecanismo de busca para o MediaWiki utilizando o Elasticsearch.
CirrusSearch will be migrated to use OpenSearch as its backend. 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.
Objetivos
- Nenhuma dependência que dificulte o processo de instalação
** As únicas dependências são as extensões do MediaWiki (somente em PHP) e o próprio Elasticsearch
- Fornecer um índice de busca para páginas wiki quase que em tempo real que seja extensível por outras extensões do MediaWiki
- Fornecer todas as opções de busca que o MWSearch já dá aos usuários e incluir novas
Dependências
- PHP e cURL
- Além das dependências usuais que o MediaWiki tem para o PHP, o CirrusSearch precisa que o PHP seja compilado com suporte ao cURL.
- Elasticsearch
- É necessário instalar o 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+.
Note que uma instalação do Java (como o OpenJDK) também é necessária. 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.
- A Elastica é uma biblioteca do PHP que se comunica com o Elasticsearch. Instale-a seguindo as instruções abaixo.
- Outras
- Devido à forma atual com a qual os trabalhos (jobs) são tratados pela extensão CirrusSearch, é preferível configurá-los no Redis para evitar mensagens do tipo Notice: unserialize(): Error at offset 64870 of 65535 bytes in JobQueueDB.php e erros como Unsupported operand types. Veja tarefa T157759.
Instalação
Embora as instruções a seguir sugiram que o Composer seja executado apenas ao instalar a partir do git, talvez seja necessário usá-lo para instalar as dependências do PHP faltantes.
- Baixe e coloque o(s) arquivo(s) num diretório chamado
Elastica
na sua pastaextensions/
.
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Elastica - Se estiver instalando a partir do git, execute o Composer para instalar as dependências PHP através de
composer install --no-dev
no diretório da extensão. (Veja tarefa T173141 para possíveis complicações.) - Adicione o seguinte código ao final do seu arquivo LocalSettings.php :
wfLoadExtension( 'Elastica' );
- Concluído – Navegue à página Special:Version em sua wiki para verificar se a instalação da extensão foi bem sucedida.
CirrusSearch
- Baixe e coloque o(s) arquivo(s) num diretório chamado
CirrusSearch
na sua pastaextensions/
.
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CirrusSearch - Se estiver instalando a partir do git, execute o Composer para instalar as dependências PHP através de
composer install --no-dev
no diretório da extensão. (Veja tarefa T173141 para possíveis complicações.) - Adicione o seguinte código ao final do seu arquivo LocalSettings.php :
wfLoadExtension( 'CirrusSearch' );
- Agora siga as instruções de configuração presentes no README do CirrusSearch, localizado em
$IP/extensions/CirrusSearch/README
. Note que nem todas as informações possam se aplicar à versão da extensão, especialmente a compatível do Elasticsearch. - Prossiga na configuração.
- Concluído – Navegue à página Special:Version em sua wiki para verificar se a instalação da extensão foi bem sucedida.
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
Atualizando
Siga as instruções de atualização no arquivo UPGRADE do CirrusSearch.
Configuração
Os parâmetros de configuração do CirrusSearch estão documentados no arquivo "settings.txt". Veja também a documentação para os perfis de configuração do CirrusSearch.
$wgCirrusSearchIndexBaseName
configuration parameter, which one needs to set, e.g., $wgCirrusSearchIndexBaseName = 'mywikidatabasename';
.Hooks
A extensão CirrusSearch define uma série de hooks utilizáveis por outras extensões para estender o esquema e modificar documentos. Os seguintes hooks estão disponíveis:
- CirrusSearchAnalysisConfig - permite configurar a forma de análise
- CirrusSearchMappingConfig - permite configurar o mapeamento de campos
- CirrusSearchBuildDocumentParse - permite que extensões modifiquem o documento do ElasticSearch produzido a partir de uma página
- CirrusSearchBuildDocumentLinks - permite que extensões processem ligações chegando do/partindo para o documento
- CirrusSearchBuildDocumentFinishBatch - chamado quando um lote de páginas foi indexado
- CirrusSearchAddQueryFeatures - permite que extensões adicionem recursos de análise de consulta (query)
- CirrusSearchScoreBuilder - permite que extensões definam funções construtoras de repontuação
- CirrusSearchProfileService - allows extension to declare various search components and configuration
API
Os recursos do CirrusSearch podem ser utilizados em consultas à API.
A busca ocorre através da API de busca padrão, action=query&list=search
. É possível utilizar recursos específicos do CirrusSearch, como o prefixo morelike:
para encontrar páginas relacionadas a Marie Curie e radium: [$urlquery api.php?action=query&list=search&srsearch=morelike:Marie_Curie%7Cradium&srlimit=10&srprop=size&formatversion=2]
api.php?action=query&list=search&srsearch=morelike:Marie_Curie%7Cradium&srlimit=10&srprop=size&formatversion=2
APIs e parâmetros personalizados são fornecidos para consultar informações de configuração e depuração do CirrusSearch:
- Módulo
action=cirrusdump
: 2014?action=cirrusdump - Parâmetro
cirrusDumpQuery
para Special:Search ou consultas à API de busca: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpQuery - Parâmetro
cirrusDumpResult
para Special:Search ou consultas à API de busca: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpResult - Um parâmetro adicional
cirrusExplain
pode ser incluído comcirrusDumpResult
para ter a explanação que o Lucene dá à pontuação incluída com o dump de resultados: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpResult&cirrusExplain. Ele pode ser utilizado também para obter a explanação num formato legível através dos valoresverbose
,pretty
ouhot
, como https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpResult&cirrusExplain=pretty - Módulos
cirrus-config-dump
,cirrus-settings-dump
,cirrus-mapping-dump
,cirrus-profiles-dump
para obter um dump da configuração do CirrusSearch: api.php?action=cirrus-config-dump&formatversion=2
Ver também
- General links
- Usage help page - documentação de uso do CirrusSearch (necessária após a instalação)
- Página do projeto
- Informações sobre a configuração do Cirrus/Elastic na Wikimedia
- Configuration help page - conjuntos de parâmetros ajustáveis que influenciam vários aspectos da indexação
- Extension:WikiSearch - provides faceted search API for Semantic MediaWiki using ElasticSearch.
- Extensão:Pesquisa Avançada - Enhances Special:Search by providing advanced parameters
- Debugging
Desenvolvimento local
O serviço Elasticsearch pode ser executado com a função do Vagrant (cirrussearch
) e com o MediaWiki Vagrant.
No Docker, é possível utilizar o comando docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.8.2
.
Siga então as direções de instalação e configuração.
Se seu web host estiver num container, será necessário certificar-se que o container acima está na mesma rede, e o LocalSettings.php
deverá referenciar elasticsearch
como hostname.
Isso não ativará os plug-ins da WMF, mas é o suficiente para um ambiente de testagem.
Esta extensão está sendo usada(o) por um ou mais projetos da Wikimedia. Isto significa que, provavelmente, a extensão é estável e funciona bem o suficiente para ser utilizada(o) em sites da web de alto tráfego. Procure pelo nome dessa extensão nos arquivos de configuração CommonSettings.php e InitialiseSettings.php da Wikimedia para verificar onde ela foi instalada. Uma lista completa das extensões instaladas numa wiki em particular podem ser visualizadas na página Special:Version da wiki. |
Esta extensão está incluída nas seguintes fazendas/hospedagens (farms/hosts) e/ou pacotes wiki: Esta não é uma lista autoritativa (oficial). Algumas fazendas/hospedagens (farms/hosts) e/ou pacotes wiki podem conter esta extensão mesmo que não estejam listados aqui. Sempre verifique com suas fazendas/hospedagens (farms/hosts) ou pacotes wiki para confirmar. |
- Stable extensions/pt-br
- Search extensions/pt-br
- API extensions/pt-br
- Hook extensions/pt-br
- Extensions supporting Composer/pt-br
- GPL licensed extensions/pt-br
- Extensions in Wikimedia version control/pt-br
- APIAfterExecute extensions/pt-br
- APIQuerySiteInfoGeneralInfo extensions/pt-br
- APIQuerySiteInfoStatisticsInfo extensions/pt-br
- ApiBeforeMain extensions/pt-br
- ArticleRevisionVisibilitySet extensions/pt-br
- BeforeInitialize extensions/pt-br
- CirrusSearchAddQueryFeatures extensions/pt-br
- CirrusSearchAnalysisConfig extensions/pt-br
- CirrusSearchSimilarityConfig extensions/pt-br
- GetPreferences extensions/pt-br
- LinksUpdateComplete extensions/pt-br
- PageDelete extensions/pt-br
- PageDeleteComplete extensions/pt-br
- PageMoveComplete extensions/pt-br
- PageUndeleteComplete extensions/pt-br
- PrefixSearchExtractNamespace extensions/pt-br
- ResourceLoaderGetConfigVars extensions/pt-br
- SearchGetNearMatch extensions/pt-br
- SearchIndexFields extensions/pt-br
- ShowSearchHitTitle extensions/pt-br
- SoftwareInfo extensions/pt-br
- SpecialSearchResults extensions/pt-br
- SpecialSearchResultsAppend extensions/pt-br
- SpecialStatsAddExtra extensions/pt-br
- TitleMove extensions/pt-br
- UploadComplete extensions/pt-br
- UserGetDefaultOptions extensions/pt-br
- All extensions/pt-br
- Extensions requiring Composer with git/pt-br
- Extensions used on Wikimedia/pt-br
- Extensions included in Canasta/pt-br
- Extensions included in Miraheze/pt-br
- Extensions included in MyWikis/pt-br
- Extensions included in semantic::core/pt-br
- Extensions included in wiki.gg/pt-br
- Extensions included in WikiForge/pt-br
- Discovery/pt-br
- Search/pt-br