Phabricator のプロジェクト名 #cirrussearch


Jump to navigation Jump to search
This page is a translated version of the page Extension:CirrusSearch and the translation is 33% complete.
Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎français • ‎русский • ‎中文 • ‎日本語
MediaWiki 拡張機能マニュアル
OOjs UI icon advanced.svg
リリースの状態: 安定
実装 検索, API , フック
説明 Elasticsearch を使った MediaWiki 検索の実装
作者 Nik Everett, Chad Horohoe, Erik Bernhardson
最新バージョン 継続的な更新
互換性ポリシー リリースブランチ
MediaWiki 1.29+
PHP 5.6+
データベースの変更 いいえ
ライセンス GNU 一般公衆利用許諾書 2.0 以降

  • $wgCirrusSearchServers
  • $wgCirrusSearchMaxRetries
  • $wgCirrusSearchSoftCommitTimeout
  • $wgCirrusSearchHardCommitTimeout
  • $wgCirrusSearchHardCommitMaxPendingDocs
  • $wgCirrusSearchCacheResultTime
  • $wgCirrusSearchCacheCleanupThread
  • $wgCirrusSearchFilterCacheSize
  • $wgCirrusSearchFilterCacheAutowarmCount
  • $wgCirrusSearchQueryResultCacheSize
  • $wgCirrusSearchQueryResultCacheAutowarmCount
  • $wgCirrusSearchDocumentCacheSize
  • many others で翻訳を利用できる場合は、CirrusSearch 拡張機能の翻訳にご協力ください
使用状況とバージョン マトリクスを確認してください。
Vagrant role cirrussearch
問題点 未解決のタスク · バグを報告

CirrusSearch 拡張機能はElasticsearchを使った MediaWiki 検索を実装します。

This page is for installation. After the install is working, see Help:CirrusSearch for usage.


  • 奇妙な依存関係がなくてもインストールが簡単にできること
    • 唯一の依存関係は pure-PHP MediaWiki 拡張機能と Elasticsearch だけ
  • 他の MediaWiki 拡張機能で拡張できるウィキページについて、ほぼリアルタイムに検索インデックスを返す
  • MWSearch が利用者に開放したクエリオプションすべてと、その他を提供


PHP and cURL

  • MediaWiki 1.29.x and 1.30.x require Elasticsearch 5.3.x or 5.4.x.
  • MediaWiki 1.31.x and 1.32.x require Elasticsearch 5.5.x or 5.6.x.
  • MediaWiki 1.33.x and 1.34.x require Elasticsearch 6.5.x (6.5.4 recommended).

Take note that a Java installation like OpenJDK is needed in addition.

  • Elastica is a PHP library to talk to Elasticsearch. Install Elastica per the instructions below.
  • Due to the actual handling of jobs by the CirrusSearch extension, it's advisable to set up jobs in redis to prevent messages like Notice: unserialize(): Error at offset 64870 of 65535 bytes in JobQueueDB.php and subsequent errors like Unsupported operand types. タスク T157759 を参照してください。



Even though the instructions below tell you to only run Composer when installing from git, it may be necessary to issue it anyway in order to install all PHP dependencies.

  • ダウンロードして、ファイルを extensions/ フォルダー内の Elastica という名前のディレクトリ内に配置します。
  • git からのインストールの場合のみ、PHP の依存関係をインストールするため Composer を実行します。拡張機能のディレクトリで composer install --no-dev を実行します。 (See T173141 for potential complications.)
  • 以下のコードを LocalSettings.php の末尾に追加します:
    wfLoadExtension( 'Elastica' );
  • Yes 完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。


  • ダウンロードして、ファイルを extensions/ フォルダー内の CirrusSearch という名前のディレクトリ内に配置します。
  • 以下のコードを LocalSettings.php の末尾に追加します:
    wfLoadExtension( 'CirrusSearch' );
  • Now follow the setup instructions in the CirrusSearch README delivered with your extension i.e. $IP/extensions/CirrusSearch/README. Note that all info in it might not apply to your version of the extension, especially the version of Elasticsearch supported.
  • Configure as required.
  • Yes 完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。

MediaWiki 1.33 以前を稼働させている利用者へ:

上記の手順では、wfLoadExtension() を使用してこの拡張機能をインストールする新しい方法を記載しています。 この拡張機能をこれらの過去のバージョン (MediaWiki 1.33 以前) にインストールする必要がある場合は、wfLoadExtension( 'CirrusSearch' ); の代わりに以下を使用する必要があります:

require_once "$IP/extensions/CirrusSearch/CirrusSearch.php";


Please follow the upgrade instructions in the CirrusSearch UPGRADE file.


The configuration options of CirrusSearch are documented at the docs/settings.txt file, and also in the CirrusSearch.php file.

See also documentation on CirrusSearch configuration profiles.


CirrusSearch 拡張機能が規定するフックは他の拡張機能でも利用でき、それぞれのコアのスキーマ拡張と説明文書の変更に使えます。 使用できるフックは次の通りです。


CirrusSearch の機能は API クエリで使用可能です。 Searching happens via the normal search API, action=query&list=search; you can use CirrusSearch-specific features, such as the morelike: 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



Local development

Elastic Search service can be run with the Vagrant role (cirrussearch) and MediaWiki Vagrant.

For Docker, you can use a command like docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.8.2. 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 elasticsearch as the host name. This will not have the WMF plugins but can be sufficient for basic testing.