Extension:CirrusSearch/zh

CirrusSearch扩展使用Elasticsearch实现搜索MediaWiki.

这个页面的内容与插件的安装有关. 安装成功后，参看以了解用法

目标
提供为用户提供的所有查询选项等
 * 去除使该扩展难以安装的本地依赖关系
 * 仅有的依赖项是纯PHP MediaWiki扩展和Elasticsearch本身
 * 为其他MediaWiki扩展可扩展的Wiki页面提供近实时搜索索引

依赖性

 * PHP 和 cURL
 * 除了MediaWiki对php的标准要求之外，CirrusSearch还要求PHP编译时支持cURL.
 * Elasticsearch
 * 你需要安装Elasticsearch.

请注意，还需要像OpenJDK这样的Java安装. 最好使用官方的Elasticsearch Docker镜像或自托管版本. A managed product like Amazon OpenSearch (formerly Amazon Elasticsearch) can work but may require additional configuration depending on its specifics. For example, Amazon OpenSearch only listens for Elasticsearch API requests over HTTPS on port 443 (i.e. it does not expose the default Elasticsearch port 9200), so a TLS-enabled proxy (e.g. Nginx) can enable CirrusSearch to communicate with an Amazon OpenSearch cluster.


 * Elastica是一个与Elasticsearch对话的PHP库. 按照下面的说明安装Elastica.
 * Elastica是一个与Elasticsearch对话的PHP库. 按照下面的说明安装Elastica.


 * 其他 :
 * 由于CirrusSearch扩展实际处理作业，建议在Redis中设置作业以防止Notice: unserialize: Error at offset 64870 of 65535 bytes in JobQueueDB.php之类的消息和Unsupported operand types之类的后续错误. 参见

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.

升级
请遵循在CirrusSearch 中的升级指南.

配置
The configuration parameters of CirrusSearch are documented at the file. See also documentation on CirrusSearch configuration profiles.

钩子
CirrusSearch extension defines a number of hooks that other extensions can make use of to extend the core schema and modify documents. 以下钩子可用：


 * - allows to hook into the configuration for analysis
 * - allows configuration of the mapping of fields
 * - allows extensions to modify ElasticSearch document produced from a page
 * - 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
 * - allows extension to declare various search components and configuration

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

参见

 * General links
 * - CirrusSearch usage documentation (needed after the install)
 * Info about Wikimedia Cirrus/Elastic setup
 * - sets of tunable parameters that influence various aspect of the indexing
 * - Enhances Special:Search by providing advanced parameters
 * Debugging
 * Debugging
 * How to determine that Cirrus is actually used as the search backend

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.