Extension:CirrusSearch/ja

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

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.

目標

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

依存関係
PHPとcURL
 * CirrusSearchでは、MediaWikiの標準的なPHPの要件に加えて、cURLをサポートしてコンパイルされたPHPが必要です.
 * Note that Elasticsearch versions prior to 6.8 are not compatible with PHP 8.
 * Elasticsearch
 * 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:

なお、OpenJDKなどのJavaのインストールが別途必要です. Elasticsearchの公式Dockerイメージか、セルフホスティング版を使用するのがベストです. Amazon OpenSearch（旧Amazon Elasticsearch）のようなマネージド製品でも動作しますが、その仕様によっては追加の設定が必要な場合があります. 例えば、Amazon OpenSearchは、ポート443上のHTTPSでElasticsearch APIリクエストをリッスンするだけなので（つまり、デフォルトのElasticsearchポート9200を公開しない）、TLS対応プロキシ（例：Nginx）でCirrusSearchとAmazon OpenSearchクラスタの通信を可能にすることができます.


 * ElasticaはElasticsearchと対話するためのPHPライブラリです. 以下の説明に従ってElasticaをインストールしてください.
 * ElasticaはElasticsearchと対話するためのPHPライブラリです. 以下の説明に従ってElasticaをインストールしてください.

を参照してください.
 * その他 :
 * Due to the actual handling of jobs by the CirrusSearch extension, it is 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.

以下の説明では、gitからインストールする場合にのみComposerを実行するようになっていますが、PHPの依存コンポーネントをすべてインストールするためには、いずれにせよComposerを実行する必要があります.

アップグレード
CirrusSearch ファイルに記載されているアップグレード方法に従ってください.

設定
CirrusSearchの設定パラメータは、ファイルに記載されています. See also documentation on CirrusSearch configuration profiles.

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


 * - 解析のために設定にフックすることができます
 * - フィールドのマッピングを設定することができます.
 * - ページから生成されたElasticSearchドキュメントを拡張機能で変更できるようになりました.
 * - 拡張機能でドキュメントの受信リンクと送信リンクを処理できるようにする
 * - ページのバッチがインデックスされたときに呼び出されます.
 * - クエリパーサの機能を追加する拡張機能
 * - 拡張機能でリスコアビルダー関数を定義できます
 * - 拡張機能でさまざまな検索コンポーネントと構成を宣言できるようにする

API
CirrusSearch の機能は API クエリで使用可能です. 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

CirrusSearchの設定とデバッグ情報を照会するためのカスタムAPIとパラメータが提供されています.


 * module: 2014?action=cirrusdump
 * 特別:検索または検索APIクエリへの パラメータ: https://en.wikipedia.org/wiki/Special:Search/cat%20dog%20chicken?cirrusDumpQuery
 * 特別:検索または検索APIクエリへの パラメータ: 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
 * CirrusSearchのセットアップからダンプを取得するための, ,  ,  モジュールです.  api.php?action=cirrus-config-dump&formatversion=2



関連項目

 * 一般的なリンク
 * - CirrusSearch使用説明書(インストール後に必要)
 * ウィキメディアの Cirrus/Elastic 設定に関する情報
 * - 索引作りにさまざまな影響を与える調整可能なパラメータのセット
 * - provides faceted search API for Semantic MediaWiki using ElasticSearch.
 * - Enhances Special:Search by providing advanced parameters
 * デバッグ
 * サーチバックエンドとして実際にCirrusが使用されているかどうかを判断する方法
 * サーチバックエンドとして実際にCirrusが使用されているかどうかを判断する方法



ローカル開発
Elastic Searchサービスは、Vagrantのロール（ ）とMediaWiki Vagrantで実行することができます.

Dockerの場合は、 のようなコマンドを使用することができます. その後、インストールと設定の指示に従います. ウェブホストがコンテナに入っている場合、上記のコンテナが同じネットワーク上にあることを確認し、LocalSettings.phpでホスト名として を参照するようにしたい. WMFのプラグインはありませんが、基本的なテストには十分でしょう.