Extensão:CirrusSearch

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:CirrusSearch and the translation is 87% complete.
Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎Türkçe • ‎français • ‎português do Brasil • ‎русский • ‎हिन्दी • ‎中文 • ‎日本語
Manual de extensões do MediaWiki
OOjs UI icon advanced.svg
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
branches de lançamento
Licença GNU GPL (Licença Pública Geral) 2.0 ou superior
Download
README
  • $wgCirrusSearchLanguageWeight
  • $wgCirrusSearchUseIcuFolding
  • $wgCirrusSearchStemmedWeight
  • $wgCirrusSearchQueryStringMaxDeterminizedStates
  • $wgCirrusSearchCrossClusterSearch
  • $wgCirrusSearchExtraIndexSettings
  • $wgCirrusSearchTalkNamespaceWeight
  • $wgCirrusSearchPrefixWeights
  • $wgCirrusSearchPrefixSearchRescoreProfile
  • $wgCirrusSearchDisableUpdate
  • $wgCirrusSearchCompletionSuggesterUseDefaultSort
  • $wgCirrusSearchMoreLikeThisMaxQueryTermsLimit
  • $wgCirrusSearchUseIcuTokenizer
  • $wgCirrusSearchCompletionBannedPageIds
  • $wgCirrusSearchOptimizeIndexForExperimentalHighlighter
  • $wgCirrusSearchRescoreProfiles
  • $wgCirrusSearchPhraseRescoreBoost
  • $wgCirrusSearchInterwikiProv
  • $wgCirrusSearchDefaultCluster
  • $wgCirrusSearchElasticQuirks
  • $wgCirrusSearchFallbackProfiles
  • $wgCirrusSearchMoreLikeThisTTL
  • $wgCirrusSearchAllowLeadingWildcard
  • $wgCirrusSearchInterwikiPrefixOverrides
  • $wgCirrusSearchMaintenanceTimeout
  • $wgCirrusSearchReplicas
  • $wgCirrusSearchPhraseSlop
  • $wgCirrusSearchBoostOpening
  • $wgCirrusSearchWriteBackoffExponent
  • $wgCirrusSearchUserTesting
  • $wgCirrusSearchShardCount
  • $wgCirrusSearchUseCompletionSuggester
  • $wgCirrusSearchPhraseSuggestReverseField
  • $wgCirrusSearchFallbackProfile
  • $wgCirrusSearchFragmentSize
  • $wgCirrusSearchUnlinkedArticlesToUpdate
  • $wgCirrusSearchClientSideUpdateTimeout
  • $wgCirrusSearchIgnoreOnWikiBoostTemplates
  • $wgCirrusSearchRegexMaxDeterminizedStates
  • $wgCirrusSearchInterwikiHTTPConnectTimeout
  • $wgCirrusSearchExtraIndexes
  • $wgCirrusSearchCategoryDepth
  • $wgCirrusSearchMergeSettings
  • $wgCirrusSearchClusters
  • $wgCirrusSearchAllFields
  • $wgCirrusSearchBannedPlugins
  • $wgCirrusSearchMoreLikeThisConfig
  • $wgCirrusSearchClusterOverrides
  • $wgCirrusSearchCrossProjectBlockScorerProfiles
  • $wgCirrusSearchNearMatchWeight
  • $wgCirrusSearchReplicaGroup
  • $wgCirrusSearchIndexedRedirects
  • $wgCirrusSearchIndexAllocation
  • $wgCirrusSearchNumCrossProjectSearchResults
  • $wgCirrusSearchLanguageDetectors
  • $wgCirrusSearchUpdateShardTimeout
  • $wgCirrusSearchEnableCrossProjectSearch
  • $wgCirrusSearchFullTextQueryBuilderProfiles
  • $wgCirrusSearchCompletionDefaultScore
  • $wgCirrusSearchWriteClusters
  • $wgCirrusSearchCompletionSuggesterHardLimit
  • $wgCirrusSearchRecycleCompletionSuggesterIndex
  • $wgCirrusSearchLogElasticRequests
  • $wgCirrusSearchConnectionAttempts
  • $wgCirrusSearchWikiToNameMap
  • $wgCirrusSearchMaxFullTextQueryLength
  • $wgCirrusSearchLogElasticRequestsSecret
  • $wgCirrusSearchEnableRegex
  • $wgCirrusSearchClientSideSearchTimeout
  • $wgCirrusSearchExtraBackendLatency
  • $wgCirrusSearchNamespaceMappings
  • $wgCirrusSearchPreferRecentUnspecifiedDecayPortion
  • $wgCirrusSearchWMFExtraFeatures
  • $wgCirrusSearchSearchShardTimeout
  • $wgCirrusSearchNamespaceResolutionMethod
  • $wgCirrusSearchPrivateClusters
  • $wgCirrusSearchSimilarityProfiles
  • $wgCirrusSearchCategoryMax
  • $wgCirrusSearchCategoryEndpoint
  • $wgCirrusSearchPoolCounterKey
  • $wgCirrusSearchCompletionProfiles
  • $wgCirrusSearchMaxShardsPerNode
  • $wgCirrusSearchRescoreProfile
  • $wgCirrusSearchRefreshInterval
  • $wgCirrusSearchSimilarityProfile
  • $wgCirrusExploreSimilarResults
  • $wgCirrusSearchEnableArchive
  • $wgCirrusSearchIndexDeletes
  • $wgCirrusSearchFiletypeAliases
  • $wgCirrusSearchDevelOptions
  • $wgCirrusSearchPrefixSearchStartsWithAnyWord
  • $wgCirrusSearchUpdateConflictRetryCount
  • $wgCirrusSearchInterwikiHTTPTimeout
  • $wgCirrusSearchFetchConfigFromApi
  • $wgCirrusSearchPhraseSuggestUseOpeningText
  • $wgCirrusSearchExtraIndexBoostTemplates
  • $wgCirrusSearchPrefixIds
  • $wgCirrusSearchFullTextQueryBuilderProfile
  • $wgCirrusSearchStripQuestionMarks
  • $wgCirrusSearchMoreLikeThisFields
  • $wgCirrusSearchIndexBaseName
  • $wgCirrusSearchMasterTimeout
  • $wgCirrusSearchSanityCheck
  • $wgCirrusSearchTextcatConfig
  • $wgCirrusSearchNamespaceWeights
  • $wgCirrusSearchCrossProjectOrder
  • $wgCirrusSearchTextcatModel
  • $wgCirrusSearchInterwikiThreshold
  • $wgCirrusSearchMoreAccurateScoringMode
  • $wgCirrusSearchMaxPhraseTokens
  • $wgCirrusSearchCrossProjectSearchBlockList
  • $wgCirrusSearchRescoreFunctionChains
  • $wgCirrusSearchCrossProjectShowMultimedia
  • $wgCirrusSearchMaxIncategoryOptions
  • $wgCirrusSearchCrossProjectProfiles
  • $wgCirrusSearchWikimediaExtraPlugin
  • $wgCirrusSearchLanguageToWikiMap
  • $wgCirrusSearchLinkedArticlesToUpdate
  • $wgCirrusSearchEnableAltLanguage
  • $wgCirrusSearchPreferRecentDefaultHalfLife
  • $wgCirrusSearchCompletionSuggesterSubphrases
  • $wgCirrusSearchFunctionRescoreWindowSize
  • $wgCirrusSearchEnablePhraseSuggest
  • $wgCirrusSearchCompletionSettings
  • $wgCirrusSearchUseExperimentalHighlighter
  • $wgCirrusSearchDropDelayedJobsAfter
  • $wgCirrusSearchFeedbackLink
  • $wgCirrusSearchUpdateDelay
  • $wgCirrusSearchInterleaveConfig
  • $wgCirrusSearchPhraseRescoreWindowSize
  • $wgCirrusSearchDefaultNamespaceWeight
  • $wgCirrusSearchMoreLikeThisAllowedFields
  • $wgCirrusSearchClientSideConnectTimeout
  • $wgCirrusSearchPhraseSuggestUseText
  • $wgCirrusSearchPhraseSuggestProfiles
  • $wgCirrusSearchPreferRecentDefaultDecayPortion
  • $wgCirrusSearchInterwikiSources
  • $wgCirrusSearchWeights
  • $wgCirrusSearchBoostTemplates
  • $wgCirrusSearchICUFoldingUnicodeSetFilter
  • $wgCirrusSearchSlowSearch
Para traduzir a extensão CirrusSearch, verifique sua disponibilidade no translatewiki.net
Verificar uso e matriz de versões
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.

Essa página é para a instalação. Para entender seu uso, veja Ajuda:CirrusSearch .

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

  • O MediaWiki 1.29.x e 1.30.x dependem do Elasticsearch 5.3.x ou 5.4.x.
  • O MediaWiki 1.31.x e 1.32.x dependem do Elasticsearch 5.5.x ou 5.6.x.
  • O MediaWiki 1.33.x e 1.34.x dependem do Elasticsearch 6.5.x (recomenda-se o 6.5.4).

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

Elastica
  • 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

Elastica

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 pasta extensions/.
  • 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' );
    
  • Yes 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 pasta extensions/.
  • 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.
  • Yes Concluído – Navegue à página Special:Version em sua wiki para verificar se a instalação da extensão foi bem sucedida.

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 nos arquivos $gitconfig e $gitcirrus. Veja também a documentação para os perfis de configuração do CirrusSearch.

Elasticsearch will fail to index for CirrusSearch if one is using a database name for MySQL which contains a capital character, e.g. "MyWikiDatabaseName". To mitigate this CirrusSearch provides the $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:

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

Ver também

General links
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.