Extension:CirrusSearch/pt-br

A extensão CirrusSearch implementa um mecanismo de busca para o MediaWiki utilizando o Elasticsearch.

Essa página detalha o processo de instalação. Para entender seu uso, veja.

Objetivos do projeto

 * 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 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.

Note que uma instalação do Java (como o OpenJDK) também é necessária.


 * 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 a para mais informações.
 * 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 a para mais informações.

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.

Atualização
Siga as instruções de atualização no arquivo do CirrusSearch.

Configuração
As opções de configuração do CirrusSearch estão documentadas nos arquivos e.

Veja também a documentação para os perfis de configuração do CirrusSearch.

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:


 * - permite configurar a forma de análise
 * - permite configurar o mapeamento de campos
 * - permite que extensões modifiquem o documento do ElasticSearch produzido a partir de uma página
 * - allows extensions to process incoming and outgoing links for the document
 * - called when a batch of pages has been indexed
 * - allows extensions to add query parser features
 * - allows extensions to define rescore builder functions

API
CirrusSearch features can be used in API queries. Searching happens via the normal search API, ; you can use CirrusSearch-specific features, such as the   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:


 * module: 2014?action=cirrusdump
 * parameter to Special:Search or search API queries: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpQuery
 * parameter to Special:Search or search API queries: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpResult
 * An additional parameter,, can be passed with   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 values  ,   or  , such as: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpResult&cirrusExplain=pretty
 * , ,   modules to obtain dump from the CirrusSearch setup: api.php?action=cirrus-config-dump&formatversion=2

Local development
Elastic Search service can be run with the Vagrant role and MediaWiki Vagrant.

For Docker, you can use a command like. 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 LocalSettings.php you will want to reference  as the host name. This will not have the WMF plugins but can be sufficient for basic testing.