Extension:CirrusSearch

From mediawiki.org
This page is a translated version of the page Extension:CirrusSearch and the translation is 83% complete.
Outdated translations are marked like this.
MediaWiki manüel uzantıları
CirrusSearch
Sürüm durumu: kararlı
Uygulama Ara, API , Kanca
Açıklama Elasticsearch kullanarak MediaWiki aramasını uygular
Yazar(lar) Nik Everett, Chad Horohoe, Erik Bernhardson
En son sürüm güncellemeler devam etmekte
Uyumluluk politikası MediaWiki ile birlikte anlık görüntüler yayımlanır. Master geriye dönük olarak uyumlu değil.
MediaWiki >= 1.42.0
Composer mediawiki/cirrussearch
Lisans GNU Genel Kamu Lisansı 2.0 veya üstü
İndir
README
  • $wgCirrusSearchDeduplicateInQuery
  • $wgCirrusSearchLanguageWeight
  • $wgCirrusSearchAutomationCIDRs
  • $wgCirrusSearchUseIcuFolding
  • $wgCirrusSearchStemmedWeight
  • $wgCirrusSearchQueryStringMaxDeterminizedStates
  • $wgCirrusSearchCrossClusterSearch
  • $wgCirrusSearchExtraIndexSettings
  • $wgCirrusSearchAutomationUserAgentRegex
  • $wgCirrusSearchTalkNamespaceWeight
  • $wgCirrusSearchPrefixWeights
  • $wgCirrusSearchPrefixSearchRescoreProfile
  • $wgCirrusSearchDisableUpdate
  • $wgCirrusSearchActiveTest
  • $wgCirrusSearchExtraFieldsInSearchResults
  • $wgCirrusSearchMoreLikeThisMaxQueryTermsLimit
  • $wgCirrusSearchUseIcuTokenizer
  • $wgCirrusSearchCompletionBannedPageIds
  • $wgCirrusSearchOptimizeIndexForExperimentalHighlighter
  • $wgCirrusSearchRescoreProfiles
  • $wgCirrusSearchPhraseRescoreBoost
  • $wgCirrusSearchInterwikiProv
  • $wgCirrusSearchDefaultCluster
  • $wgCirrusSearchQueryStringMaxWildcards
  • $wgCirrusSearchElasticQuirks
  • $wgCirrusSearchMaxFileTextLength
  • $wgCirrusSearchFallbackProfiles
  • $wgCirrusSearchMoreLikeThisTTL
  • $wgCirrusSearchAllowLeadingWildcard
  • $wgCirrusSearchInterwikiPrefixOverrides
  • $wgCirrusSearchMaintenanceTimeout
  • $wgCirrusSearchReplicas
  • $wgCirrusSearchPhraseSlop
  • $wgCirrusSearchBoostOpening
  • $wgCirrusSearchWriteBackoffExponent
  • $wgCirrusSearchUserTesting
  • $wgCirrusSearchShardCount
  • $wgCirrusSearchUseCompletionSuggester
  • $wgCirrusSearchPhraseSuggestReverseField
  • $wgCirrusSearchFallbackProfile
  • $wgCirrusSearchFragmentSize
  • $wgCirrusSearchUnlinkedArticlesToUpdate
  • $wgCirrusSearchCustomPageFields
  • $wgCirrusSearchClientSideUpdateTimeout
  • $wgCirrusSearchIgnoreOnWikiBoostTemplates
  • $wgCirrusSearchRegexMaxDeterminizedStates
  • $wgCirrusSearchInterwikiHTTPConnectTimeout
  • $wgCirrusSearchExtraIndexes
  • $wgCirrusSearchCategoryDepth
  • $wgCirrusSearchMergeSettings
  • $wgCirrusSearchClusters
  • $wgCirrusSearchCrossProjectShowMultimedia
  • $wgCirrusSearchBannedPlugins
  • $wgCirrusSearchMoreLikeThisConfig
  • $wgCirrusSearchClusterOverrides
  • $wgCirrusSearchCrossProjectBlockScorerProfiles
  • $wgCirrusSearchEnableIncomingLinkCounting
  • $wgCirrusSearchNearMatchWeight
  • $wgCirrusSearchWriteIsolateClusters
  • $wgCirrusSearchIndexedRedirects
  • $wgCirrusSearchIndexAllocation
  • $wgCirrusSearchNumCrossProjectSearchResults
  • $wgCirrusSearchLanguageDetectors
  • $wgCirrusSearchUpdateShardTimeout
  • $wgCirrusSearchEnableCrossProjectSearch
  • $wgCirrusSearchFullTextQueryBuilderProfiles
  • $wgCirrusSearchCompletionDefaultScore
  • $wgCirrusSearchWriteClusters
  • $wgCirrusSearchCompletionSuggesterHardLimit
  • $wgCirrusSearchRecycleCompletionSuggesterIndex
  • $wgCirrusSearchLogElasticRequests
  • $wgCirrusSearchConnectionAttempts
  • $wgCirrusSearchElasticaWritePartitionCounts
  • $wgCirrusSearchWikiToNameMap
  • $wgCirrusSearchMaxFullTextQueryLength
  • $wgCirrusSearchLogElasticRequestsSecret
  • $wgCirrusSearchEnableRegex
  • $wgCirrusSearchClientSideSearchTimeout
  • $wgCirrusSearchDeduplicateInMemory
  • $wgCirrusSearchUseEventBusBridge
  • $wgCirrusSearchDeduplicateAnalysis
  • $wgCirrusSearchExtraBackendLatency
  • $wgCirrusSearchNamespaceMappings
  • $wgCirrusSearchWMFExtraFeatures
  • $wgCirrusSearchPreferRecentUnspecifiedDecayPortion
  • $wgCirrusSearchNamespaceResolutionMethod
  • $wgCirrusSearchDocumentSizeLimiterProfiles
  • $wgCirrusSearchSearchShardTimeout
  • $wgCirrusSearchCategoryMax
  • $wgCirrusSearchPrivateClusters
  • $wgCirrusSearchSimilarityProfiles
  • $wgCirrusSearchCategoryEndpoint
  • $wgCirrusSearchRescoreFunctionChains
  • $wgCirrusSearchPoolCounterKey
  • $wgCirrusSearchCompletionProfiles
  • $wgCirrusSearchMaxShardsPerNode
  • $wgCirrusSearchWeights
  • $wgCirrusSearchEnableArchive
  • $wgCirrusSearchSimilarityProfile
  • $wgCirrusSearchInterwikiThreshold
  • $wgCirrusSearchIndexDeletes
  • $wgCirrusSearchDocumentSizeLimiterProfile
  • $wgCirrusSearchFiletypeAliases
  • $wgCirrusSearchDevelOptions
  • $wgCirrusSearchPrefixSearchStartsWithAnyWord
  • $wgCirrusSearchUpdateConflictRetryCount
  • $wgCirrusSearchInterwikiHTTPTimeout
  • $wgCirrusSearchFetchConfigFromApi
  • $wgCirrusSearchBoostTemplates
  • $wgCirrusSearchExtraIndexBoostTemplates
  • $wgCirrusSearchPrefixIds
  • $wgCirrusSearchFullTextQueryBuilderProfile
  • $wgCirrusSearchStripQuestionMarks
  • $wgCirrusSearchMoreLikeThisFields
  • $wgCirrusSearchIndexBaseName
  • $wgCirrusSearchMasterTimeout
  • $wgCirrusSearchSanityCheck
  • $wgCirrusSearchTextcatConfig
  • $wgCirrusSearchNamespaceWeights
  • $wgCirrusSearchCrossProjectOrder
  • $wgCirrusSearchTextcatModel
  • $wgCirrusSearchRescoreProfile
  • $wgCirrusSearchMoreAccurateScoringMode
  • $wgCirrusSearchMaxPhraseTokens
  • $wgCirrusSearchCrossProjectSearchBlockList
  • $wgCirrusSearchCrossProjectProfiles
  • $wgCirrusSearchLanguageToWikiMap
  • $wgCirrusSearchMaxIncategoryOptions
  • $wgCirrusSearchEnableAltLanguage
  • $wgCirrusSearchWikimediaExtraPlugin
  • $wgCirrusSearchCompletionSuggesterUseDefaultSort
  • $wgCirrusSearchLinkedArticlesToUpdate
  • $wgCirrusSearchCompletionSuggesterSubphrases
  • $wgCirrusSearchPreferRecentDefaultHalfLife
  • $wgCirrusSearchSlowSearch
  • $wgCirrusSearchFunctionRescoreWindowSize
  • $wgCirrusSearchEnablePhraseSuggest
  • $wgCirrusSearchCompletionSettings
  • $wgCirrusSearchUseExperimentalHighlighter
  • $wgCirrusSearchFeedbackLink
  • $wgCirrusSearchUpdateDelay
  • $wgCirrusSearchRefreshInterval
  • $wgCirrusSearchInterleaveConfig
  • $wgCirrusSearchPhraseRescoreWindowSize
  • $wgCirrusSearchMoreLikeThisAllowedFields
  • $wgCirrusSearchPreferRecentDefaultDecayPortion
  • $wgCirrusSearchClientSideConnectTimeout
  • $wgCirrusSearchPhraseSuggestUseText
  • $wgCirrusSearchPhraseSuggestProfiles
  • $wgCirrusSearchDefaultNamespaceWeight
  • $wgCirrusSearchInterwikiSources
  • $wgCirrusSearchPhraseSuggestUseOpeningText
  • $wgCirrusSearchICUNormalizationUnicodeSetFilter
  • $wgCirrusSearchICUFoldingUnicodeSetFilter
  • $wgCirrusSearchReplicaGroup
Quarterly downloads 360 (Ranked 15th)
Public wikis using 1,226 (Ranked 212nd)
Translatewiki.net adresinde mevcutsa, CirrusSearch uzantısını çevirin
Vagrant rolü cirrussearch
Sorunlar Açık görevler · Hata bildir

CirrusSearch uzantısı, Elasticsearch kullanarak MediaWiki aramasını gerçekleştirir.

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.

Hedefler

  • Bunu yüklemeyi zorlaştıracak yerel bağımlılık yok
    • Tek bağımlılıklar saf PHP MediaWiki uzantıları ve Elasticsearch'ın kendisidir
  • Diğer MediaWiki uzantılarıyla genişletilebilen viki sayfaları için neredeyse gerçek zamanlı bir arama dizini sağlayın
  • MWSearch kullanıcılara verdiği tüm sorgu seçeneklerini ve daha fazlasını sağlayın

Bağımlılıklar

PHP ve cURL
  • Note that Elasticsearch versions prior to 6.8 are not compatible with PHP 8.
Elasticsearch

Every version of ElasticSearch change how web services work, and cause compatibility problems. You must install the version of Elastic Search compatible with the version of MediaWiki you are currently using:

  • MediaWiki 1.29.x - 1.30.x, Elasticsearch 5.3.x - 5.4.x gerektirir
  • MediaWiki 1.31.x - 1.32.x, Elasticsearch 5.5.x - 5.6.x gerektirir
  • MediaWiki 1.33.x - 1.38.x, Elasticsearch 6.5.x - 6.8.x gerektirir (6.8.23+ önerilir)
  • MediaWiki 1.39+ require Elasticsearch 7.10.2 (6.8.23+ is possible using a compatibility layer )

Ek olarak OpenJDK gibi bir Java kurulumunun gerekli olduğuna dikkat edin. Resmi Elasticsearch Docker resmini veya kendi kendine barındırılan bir sürümü kullanmak en iyisidir. Amazon OpenSearch (eski adıyla Amazon Elasticsearch) gibi yönetilen bir ürün çalışabilir ancak özelliklerine bağlı olarak ek yapılandırma gerektirebilir. Örneğin, Amazon OpenSearch yalnızca 443 numaralı bağlantı noktasında HTTPS üzerinden Elasticsearch API isteklerini dinler (yani, varsayılan Elasticsearch bağlantı noktası 9200'ü göstermez), bu nedenle TLS etkin bir proxy (ör. Nginx), CirrusSearch'ün bir Amazon OpenSearch kümesiyle iletişim kurmasını sağlayabilir.

Elastica
  • Elastica, Elasticsearch ile konuşmak için bir PHP kitaplığıdır. Elastica'yı aşağıdaki talimatlara göre yükleyin.

Diğer
  • CirrusSearch uzantısı tarafından işlerin fiili olarak işlenmesi nedeniyle, Notice: unserialize(): Error at offset 64870 of 65535 bytes in JobQueueDB.php gibi mesajları ve Unsupported operand types gibi sonraki hataları önlemek için Redis'de işler ayarlamanız önerilir. görev T157759 sayfasına bakın.

Kurulum

Elastica

Aşağıdaki talimatlar size Composer'ı Git'ten kurarken çalıştırmanızı söylese de, tüm PHP bağımlılıklarını kurmak için yine de düzenlemeniz gerekebilir.

  • Dosyaları indirin ve extensions/ klasörünüzdeki Elastica adlı dizine yerleştirin.
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Elastica
  • Yalnızca git dizininden yüklerken, PHP bağımlılıklarını uzantı dizinine composer install --no-dev vererek yüklemek için Composer komutunu çalıştırın. (Potansiyel komplikasyonlar için görev T173141 sayfasına bakınız.)
  • LocalSettings.php dosyanızın altına aşağıdaki kodu ekleyin:
    wfLoadExtension( 'Elastica' );
    
  • Yes Yapıldı – Uzantının başarıyla yüklendiğini doğrulamak için vikinizde Special:Version seçeneğine gidin.

CirrusSearch

  • Dosyaları indirin ve extensions/ klasörünüzdeki CirrusSearch adlı dizine yerleştirin.
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CirrusSearch
  • Yalnızca git dizininden yüklerken, PHP bağımlılıklarını uzantı dizinine composer install --no-dev vererek yüklemek için Composer komutunu çalıştırın. (Potansiyel komplikasyonlar için görev T173141 sayfasına bakınız.)
  • LocalSettings.php dosyanızın altına aşağıdaki kodu ekleyin:
    wfLoadExtension( 'CirrusSearch' );
    
  • Şimdi, uzantınız, yani $IP/extensions/CirrusSearch/README ile birlikte verilen CirrusSearch README içindeki kurulum talimatlarını izleyin. İçindeki tüm bilgilerin uzantı sürümünüz için, özellikle desteklenen Elasticsearch sürümü için geçerli olmayabileceğini unutmayın.
  • Gerektiği gibi yapılandırın.
  • Yes Yapıldı – Uzantının başarıyla yüklendiğini doğrulamak için vikinizde Special:Version seçeneğine gidin.

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:

  1. execute the following command:
    /usr/share/elasticsearch/bin/elasticsearch-plugin/elasticsearch-plugin install org.wikimedia.search:extra:7.10.2-wmf12
    
  2. add the following line to you "LocalSettings.php" file:
    $wgCirrusSearchWikimediaExtraPlugin[ 'regex' ] = [ 'build', 'use', 'max_inspect' => 10000 ];
    
  3. restart Elasticsearch with the follwing command:
    systemctl restart elasticsearch
    
  4. recreate the search index by executing the following commands:
    1. php path/to/extensions/CirrusSearch/maintenance/UpdateSearchIndexConfig.php --startOver
      
    2. php path/to/extensions/CirrusSearch/maintenance/ForceSearchIndex.php
      


Yükseltme

Lütfen CirrusSearch UPGRADE dosyasındaki yükseltme talimatlarını izleyin.

Yapılandırma

CirrusSearch'ın yapılandırma parametreleri "settings.txt" dosyasında belgelenmiştir. CirrusSearch yapılandırma profilleri ile ilgili belgelere de bakın.

MySQL için büyük karakter içeren bir veritabanı adı kullanılıyorsa, Elasticsearch CirrusSearch için indeksleme yapamaz, örn. "MyWikiDatabaseName". Bu CirrusSearch etkisini azaltmak için, ayarlanması gereken $wgCirrusSearchIndexBaseName yapılandırma parametresini sağlar, ör. $wgCirrusSearchIndexBaseName = 'mywikidatabasename';.

Kancalar

CirrusSearch uzantısı, diğer uzantıların temel şemayı genişletmek ve belgeleri değiştirmek için kullanabileceği bir dizi kancayı tanımlar. Aşağıdaki kancalar mevcuttur:

API

CirrusSearch özellikleri API sorgularında kullanılabilir. Arama normal arama API'si, action=query&list=search; Marie Curie ve radyum ile ilgili sayfaları bulmak için morelike: i özel öneki gibi CirrusSearch'e özgü özellikleri kullanabilirsiniz: [$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

CirrusSearch yapılandırma ve hata ayıklama bilgilerini sorgulamak için özel API'ler ve parametreler sağlanır:

Ayrıca bakınız

Genel bağlantılar
Hata ayıklama

Yerel geliştirmesi

Elastic Search hizmeti, Vagrant rolü (cirrussearch) ve MediaWiki Vagrant ile çalıştırılabilir.

Docker için docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.8.2 gibi bir komut kullanabilirsiniz. Ardından kurulum ve yapılandırma talimatlarını izleyin. Web barındırıcınız bir kapsayıcıdaysa, yukarıdaki kapsayıcının aynı ağda olduğundan emin olmak ve LocalSettings.php'de ana bilgisayar adı olarak elasticsearch ile kaynaklamak isteyeceksiniz. Bu, WMF eklentilerine sahip olmayacak, ancak temel test için yeterli olabilir.